[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <1212514250.3025.112.camel@raven.themaw.net>
Date: Wed, 04 Jun 2008 01:30:48 +0800
From: Ian Kent <raven@...maw.net>
To: Linus Torvalds <torvalds@...ux-foundation.org>
Cc: Al Viro <viro@...IV.linux.org.uk>,
Miklos Szeredi <miklos@...redi.hu>, jesper@...gh.cc,
linux-kernel@...r.kernel.org, linux-fsdevel@...r.kernel.org
Subject: Re: Linux 2.6.26-rc4
On Tue, 2008-06-03 at 09:59 -0700, Linus Torvalds wrote:
>
> 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.
Yes, perhaps not.
A job for another day.
Ian
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists