cluster: RHEL4 - GFS: Unable to mount NFS-over-GFS

Bob Peterson rpeterso at fedoraproject.org
Thu Jul 1 18:29:57 UTC 2010


Gitweb:        http://git.fedorahosted.org/git/cluster.git?p=cluster.git;a=commitdiff;h=923cc8435cc5bb342fe2418b413c640f3553f8e1
Commit:        923cc8435cc5bb342fe2418b413c640f3553f8e1
Parent:        e6c22884192ff33724b8fd17bf1a040f6210f666
Author:        Bob Peterson <rpeterso at redhat.com>
AuthorDate:    Thu Jul 1 13:24:56 2010 -0500
Committer:     Bob Peterson <rpeterso at 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) {


More information about the cluster-commits mailing list