diff options
author | Robert Peterson <rpeterso@redhat.com> | 2007-01-11 14:25:00 -0500 |
---|---|---|
committer | Steven Whitehouse <swhiteho@redhat.com> | 2007-02-05 13:36:46 -0500 |
commit | 70831465646b1fef9bf7b51b64409276411e9746 (patch) | |
tree | 98fd30f0d3cbc5726b641ba0cb3f72764d251b15 /fs/gfs2 | |
parent | d200778e1257eeb92242355de6f191a0a5ad43c4 (diff) |
[GFS2] gfs2 knows of directories which it chooses not to display
This is for Red Hat 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 directory had been deleted & recreated.
This patch is a crosswrite from a RHEL4 bug found in GFS1 as
bz #190756 and it is against the latest -nmw git tree.
Signed-off-by: Robert Peterson <rpeterso@redhat.com>
Signed-off-by: Steven Whitehouse <swhiteho@redhat.com>
Diffstat (limited to 'fs/gfs2')
-rw-r--r-- | fs/gfs2/ops_export.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/fs/gfs2/ops_export.c b/fs/gfs2/ops_export.c index b4e7b8775315..6ea979c74b6b 100644 --- a/fs/gfs2/ops_export.c +++ b/fs/gfs2/ops_export.c | |||
@@ -22,6 +22,7 @@ | |||
22 | #include "glock.h" | 22 | #include "glock.h" |
23 | #include "glops.h" | 23 | #include "glops.h" |
24 | #include "inode.h" | 24 | #include "inode.h" |
25 | #include "ops_dentry.h" | ||
25 | #include "ops_export.h" | 26 | #include "ops_export.h" |
26 | #include "rgrp.h" | 27 | #include "rgrp.h" |
27 | #include "util.h" | 28 | #include "util.h" |
@@ -189,6 +190,7 @@ static struct dentry *gfs2_get_parent(struct dentry *child) | |||
189 | return ERR_PTR(-ENOMEM); | 190 | return ERR_PTR(-ENOMEM); |
190 | } | 191 | } |
191 | 192 | ||
193 | dentry->d_op = &gfs2_dops; | ||
192 | return dentry; | 194 | return dentry; |
193 | } | 195 | } |
194 | 196 | ||
@@ -269,6 +271,7 @@ out_inode: | |||
269 | return ERR_PTR(-ENOMEM); | 271 | return ERR_PTR(-ENOMEM); |
270 | } | 272 | } |
271 | 273 | ||
274 | dentry->d_op = &gfs2_dops; | ||
272 | return dentry; | 275 | return dentry; |
273 | 276 | ||
274 | fail_rgd: | 277 | fail_rgd: |