From: Robert Peterson <rpeterso@redhat.com> Subject: [PATCH] GFS2: bz 222302: gfs2 knows of directories which it chooses not to display Date: Fri, 26 Jan 2007 09:12:54 -0600 Bugzilla: 222302 Message-Id: <45BA1A76.3070905@redhat.com> Changelog: [gfs2] corrrectly display revalidated directories This patch is for bugzilla bug bz #222302: Moving a virtual IP from node to node between two NFS-over-GFS2 servers was causing one of the GFS2 servers to become confused and reference a deleted inode. The problem was due to vfs dentries that did not reference the gfs2_dops and therefore didn't call the gfs2 revalidate code to revalidate a dentry after a file or directory had been deleted & recreated. This patch is a crosswrite from a RHEL4 bug found in GFS1 as bz #190756 and it is against kernel-2.6.18-6.el5. This patch is in the latest -nmw branch of Steve Whitehouse's upstream git tree. Signed-off-by: Bob Peterson <rpeterso@redhat.com> --- linux-2.6.18.i386/fs/gfs2/ops_export.c 2007-01-26 09:00:56.000000000 -0600 +++ linux-2.6.18.i386/fs/gfs2/ops_export.c 2007-01-25 13:17:48.000000000 -0600 @@ -22,6 +22,7 @@ #include "glock.h" #include "glops.h" #include "inode.h" +#include "ops_dentry.h" #include "ops_export.h" #include "rgrp.h" #include "util.h" @@ -195,6 +196,7 @@ static struct dentry *gfs2_get_parent(st return ERR_PTR(-ENOMEM); } + dentry->d_op = &gfs2_dops; return dentry; } @@ -275,6 +277,7 @@ out_inode: return ERR_PTR(-ENOMEM); } + dentry->d_op = &gfs2_dops; return dentry; fail_rgd: