> On Tue, 2008-06-03 at 11:48 +0100, Al Viro wrote:
> > On Tue, Jun 03, 2008 at 12:37:59PM +0200, Miklos Szeredi wrote:
> > > >
http://www.kerneloops.org/raw.php?rawid=12419&msgid=
> > > >
> > > > Looks like a negative inode in S_ISDIR(mnt->mnt_root->d_inode->i_mode),
> > > > which would be due to NFS not properly filling in its root dentry?
> > >
> > > On second thought it's S_ISDIR(path->dentry->d_inode->i_mode), which
> > > means it's an autofs thing.
> >
> > It is path->dentry, all right, but the question is how'd it get that way.
> > Look: we got that nd.path.dentry out of path_lookup() with LOOKUP_FOLLOW
> > as flags. Then we'd passed it through do_new_mount() to do_add_mount()
> > without changes. And went through
> > /* Something was mounted here while we slept */
> > while (d_mountpoint(nd->path.dentry) &&
> > follow_down(&nd->path.mnt, &nd->path.dentry))
> > ;
>
> And this relates to previous in that a mount isn't done by autofs until
> until after the directory is created, at which time the (->mkdir())
> dentry is hashed.