[GFS2] gfs2 knows of directories which it chooses not to display[21/54]

From: Steven Whitehouse
Date: Mon Feb 05 2007 - 09:19:00 EST


>From 318bb21324745d6cd3575c43d64513809568443f Mon Sep 17 00:00:00 2001
From: Robert Peterson <rpeterso@xxxxxxxxxx>
Date: Thu, 11 Jan 2007 13:25:00 -0600
Subject: [PATCH] [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@xxxxxxxxxx>
Signed-off-by: Steven Whitehouse <swhiteho@xxxxxxxxxx>

diff --git a/fs/gfs2/ops_export.c b/fs/gfs2/ops_export.c
index b4e7b87..6ea979c 100644
--- a/fs/gfs2/ops_export.c
+++ b/fs/gfs2/ops_export.c
@@ -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:
--
1.4.4.2



-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/