]> err.no Git - linux-2.6/commitdiff
[GFS2] gfs2 knows of directories which it chooses not to display
authorRobert Peterson <rpeterso@redhat.com>
Thu, 11 Jan 2007 19:25:00 +0000 (13:25 -0600)
committerSteven Whitehouse <swhiteho@redhat.com>
Mon, 5 Feb 2007 18:36:46 +0000 (13:36 -0500)
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>
fs/gfs2/ops_export.c

index b4e7b8775315e34dd70ad60b935875d3ed274b1c..6ea979c74b6b9334824fd58e73fc8dc14b5c2401 100644 (file)
@@ -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"
@@ -189,6 +190,7 @@ static struct dentry *gfs2_get_parent(struct dentry *child)
                return ERR_PTR(-ENOMEM);
        }
 
+       dentry->d_op = &gfs2_dops;
        return dentry;
 }
 
@@ -269,6 +271,7 @@ out_inode:
                return ERR_PTR(-ENOMEM);
        }
 
+       dentry->d_op = &gfs2_dops;
        return dentry;
 
 fail_rgd: