tech-kern archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Blocking vcache_tryvget() across VOP_INACTIVE() - unneeded



I don't understand why we do this.  I don't think it's needed at all because
if the file really is deleted and the inode is getting cleaned out, then it
shouldn't be getting new refs in any of the usual ways and we don't need to
worry about it.  And in any case the vnode lock prevents anyone from messing
with the inode during VOP_INACTIVE().

I want to change this because it causes nasty problems on MP.  For example I
see threads very regulary thrown out of the namecache by vcache_vtryget(),
and when they finally get the vnode ref'd and locked they do it by digging
through the file system metadata (when everything is already in cache).

	http://www.netbsd.org/~ad/inactive.diff

What am I missing here?  Is there a buggy file system or something like
that?

Cheers,
Andrew


Home | Main Index | Thread Index | Old Index