Gitweb:
http://git.fedorahosted.org/git/cluster.git?p=cluster.git;a=commitdiff;h=...
Commit: 923cc8435cc5bb342fe2418b413c640f3553f8e1
Parent: e6c22884192ff33724b8fd17bf1a040f6210f666
Author: Bob Peterson <rpeterso(a)redhat.com>
AuthorDate: Thu Jul 1 13:24:56 2010 -0500
Committer: Bob Peterson <rpeterso(a)redhat.com>
CommitterDate: Thu Jul 1 13:24:56 2010 -0500
GFS: Unable to mount NFS-over-GFS
This patch is a kludge to fix the patch for bug #449330.
With bug #449330, the problem was that the stat() syscall on a file
in GFS returned the ID of the diapered device in st_dev, not the
"real" underlying device. The problem is, NFS mounts are an
exception: they require the diapered device to be returned.
This is not a problem in upstream code because newer versions of
GFS don't use a diapered device, only the "real" device.
rhbz#610154
---
gfs-kernel/src/gfs/ops_inode.c | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/gfs-kernel/src/gfs/ops_inode.c b/gfs-kernel/src/gfs/ops_inode.c
index b3e53c9..2199c65 100644
--- a/gfs-kernel/src/gfs/ops_inode.c
+++ b/gfs-kernel/src/gfs/ops_inode.c
@@ -1658,7 +1658,7 @@ gfs_getattr(struct vfsmount *mnt, struct dentry *dentry, struct
kstat *stat)
{
generic_fillattr(inode, stat);
blk_dev = gfs_diaper_2real(inode->i_sb->s_bdev);
- if (blk_dev)
+ if (blk_dev && strcmp(current->comm, "rpc.mountd"))
stat->dev = blk_dev->bd_dev;
if (S_ISREG(inode->i_mode) && dentry->d_parent
&& dentry->d_parent->d_inode) {