[PATCH] nfs: don't drop dentry in d_revalidate

From: Miklos Szeredi
Date: Fri Oct 07 2005 - 06:23:03 EST


NFS d_revalidate() is doing things that are supposed to be done by
d_invalidate().

Dropping the dentry is especially bad, since it will make
d_invalidate() bypass all checks.

Signed-off-by: Miklos Szeredi <miklos@xxxxxxxxxx>
---

Index: linux/fs/nfs/dir.c
===================================================================
--- linux.orig/fs/nfs/dir.c 2005-10-04 13:59:57.000000000 +0200
+++ linux/fs/nfs/dir.c 2005-10-07 12:53:45.000000000 +0200
@@ -762,12 +762,7 @@ out_zap_parent:
if (inode && S_ISDIR(inode->i_mode)) {
/* Purge readdir caches. */
nfs_zap_caches(inode);
- /* If we have submounts, don't unhash ! */
- if (have_submounts(dentry))
- goto out_valid;
- shrink_dcache_parent(dentry);
}
- d_drop(dentry);
unlock_kernel();
dput(parent);
return 0;
-
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/