summaryrefslogtreecommitdiffstats
path: root/fs/ocfs2/dcache.c
diff options
context:
space:
mode:
authorTristan Ye <tristan.ye@oracle.com>2010-11-15 21:39:09 +0800
committerJoel Becker <joel.becker@oracle.com>2010-11-18 14:10:56 -0800
commit1989a80a60d2f620bad99196d6c1801c2afd7c71 (patch)
tree896ce5206a1a767a38a74669a7237853e791c4f3 /fs/ocfs2/dcache.c
parent1cf257f511918ba5b2eabd64d9acd40f1d7866ef (diff)
downloadlinux-1989a80a60d2f620bad99196d6c1801c2afd7c71.tar.gz
linux-1989a80a60d2f620bad99196d6c1801c2afd7c71.tar.bz2
linux-1989a80a60d2f620bad99196d6c1801c2afd7c71.zip
Ocfs2: Stop tracking a negative dentry after dentry_iput().
I suddenly hit the problem during 2.6.37-rc1 regression test, which was introduced by commit '5e98d492406818e6a94c0ba54c61f59d40cefa4a'(Track negative entries v3), following scenario reproduces the issue easily: Node A Node B ================ ============ $touch testfile $ls testfile $rm -rf testfile $touch testfile $ls testfile ls: cannot access testfile: No such file or directory This patch stops tracking the dentry which was negativated by a inode deletion, so as to force the revaliation in next lookup, in case we'll touch the inode again in the same node. It didn't hurt the performance of multiple lookup for none-existed files anyway, while regresses a bit in the first try after a file deletion. Signed-off-by: Tristan Ye <tristan.ye@oracle.com> Signed-off-by: Joel Becker <joel.becker@oracle.com>
Diffstat (limited to 'fs/ocfs2/dcache.c')
-rw-r--r--fs/ocfs2/dcache.c1
1 files changed, 0 insertions, 1 deletions
diff --git a/fs/ocfs2/dcache.c b/fs/ocfs2/dcache.c
index edaded48e7e9..895532ac4d98 100644
--- a/fs/ocfs2/dcache.c
+++ b/fs/ocfs2/dcache.c
@@ -476,7 +476,6 @@ static void ocfs2_dentry_iput(struct dentry *dentry, struct inode *inode)
out:
iput(inode);
- ocfs2_dentry_attach_gen(dentry);
}
/*