lkml.org 
[lkml]   [2008]   [Jun]   [3]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: Linux 2.6.26-rc4


On Tue, 3 Jun 2008, Al Viro wrote:
> >
> > If the dentry is unhashed, it means that it _either_
> >
> > - has already been deleted (rmdir'ed) or d_invalidate()'d. Right?
> >
> > I don't see why you should ever return the dentry in this case..
>
> From my reading of that code looks like it's been rmdir'ed. And no, I
> don't understand what the hell is that code trying to do.

Hmm. Looking closer, I think that code is meant to handle the
d_invalidate() that it did in autofs4_tree_busy().

However, that should never trigger for a directory entry that can be
reached some other way, because that code has done a "dget()" on the
dentry, and d_invalidate() does

if (atomic_read(&dentry->d_count) > 1) {
if (dentry->d_inode && S_ISDIR(dentry->d_inode->i_mode)) {
..unlock..
return -EBUSY;
}
}

so I dunno. I still think the expire code shouldn't even use
d_invalidate() at all, and just revalidate() at lookup.

Linus


\
 
 \ /
  Last update: 2008-06-03 19:03    [W:0.152 / U:0.208 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site