[Ocfs2-devel] [PATCH] Track negative dentries
Wengang Wang
wen.gang.wang at oracle.com
Tue Jun 22 21:57:24 PDT 2010
Thanks Mark!
The patch works fine.
I went to a wrong direction.
regards,
wengang.
On 10-06-22 09:53, Mark Fasheh wrote:
> On Tue, Jun 22, 2010 at 11:23:33AM +0800, Wengang Wang wrote:
> > Actually I meant two dentries in the two run of 'ls -l'.
> > At the first run, a dentry, dentry A, is created. Because fileA doesn't exist,
> > dentry->d_inode is NULL.
>
> Ok so you do a lookup on a name which doesn't exist, which results in a
> negative dentry for fileA.
>
> > Then a do_revalidate() is run, ocfs2_dentry_revalidate() returns "not
> > valid" since d_inode is NULL. Thus the dentry A is unhashed from cache by
> > d_invalidate().
>
> Part of the patch is to change this behavior right here.
>
> ocfs2_dentry_revalidate() is seeing the NULL inode and forcing the dentry to
> be invalidated (thus requiring another lookup).
>
>
> The patch needs to handle this by comparing sequence numbers with the parent
> dentry and ONLY if they're different should it force the dentry to be
> invalidated. Otherwise it can allow the dentry to stay hashed (and
> negative).
> --Mark
>
> --
> Mark Fasheh
More information about the Ocfs2-devel
mailing list