Ocfs2: Stop tracking a negative dentry after dentry_iput().
authorTristan Ye <tristan.ye@oracle.com>
Mon, 15 Nov 2010 13:39:09 +0000 (21:39 +0800)
committerJoel Becker <joel.becker@oracle.com>
Thu, 18 Nov 2010 22:10:56 +0000 (14:10 -0800)
commit1989a80a60d2f620bad99196d6c1801c2afd7c71
tree896ce5206a1a767a38a74669a7237853e791c4f3
parent1cf257f511918ba5b2eabd64d9acd40f1d7866ef
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>
fs/ocfs2/dcache.c