提交 70831465 编写于 作者: R Robert Peterson 提交者: Steven Whitehouse

[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: NRobert Peterson <rpeterso@redhat.com>
Signed-off-by: NSteven Whitehouse <swhiteho@redhat.com>
上级 d200778e
...@@ -22,6 +22,7 @@ ...@@ -22,6 +22,7 @@
#include "glock.h" #include "glock.h"
#include "glops.h" #include "glops.h"
#include "inode.h" #include "inode.h"
#include "ops_dentry.h"
#include "ops_export.h" #include "ops_export.h"
#include "rgrp.h" #include "rgrp.h"
#include "util.h" #include "util.h"
...@@ -189,6 +190,7 @@ static struct dentry *gfs2_get_parent(struct dentry *child) ...@@ -189,6 +190,7 @@ static struct dentry *gfs2_get_parent(struct dentry *child)
return ERR_PTR(-ENOMEM); return ERR_PTR(-ENOMEM);
} }
dentry->d_op = &gfs2_dops;
return dentry; return dentry;
} }
...@@ -269,6 +271,7 @@ static struct dentry *gfs2_get_dentry(struct super_block *sb, void *inum_obj) ...@@ -269,6 +271,7 @@ static struct dentry *gfs2_get_dentry(struct super_block *sb, void *inum_obj)
return ERR_PTR(-ENOMEM); return ERR_PTR(-ENOMEM);
} }
dentry->d_op = &gfs2_dops;
return dentry; return dentry;
fail_rgd: fail_rgd:
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册