forked from Minki/linux
[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>
This commit is contained in:
parent
d200778e12
commit
7083146564
@ -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)
|
|||||||
return ERR_PTR(-ENOMEM);
|
return ERR_PTR(-ENOMEM);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
dentry->d_op = &gfs2_dops;
|
||||||
return dentry;
|
return dentry;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -269,6 +271,7 @@ out_inode:
|
|||||||
return ERR_PTR(-ENOMEM);
|
return ERR_PTR(-ENOMEM);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
dentry->d_op = &gfs2_dops;
|
||||||
return dentry;
|
return dentry;
|
||||||
|
|
||||||
fail_rgd:
|
fail_rgd:
|
||||||
|
Loading…
Reference in New Issue
Block a user