tech-kern archive

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

Re: vnode locking oddities, again

On Fri, Oct 30, 2009 at 01:25:10PM +0100, Manuel Bouyer wrote:
> Sure. It seems there are places in the kernel which relies on
> getting the interlock to work on the vnode, without bumping the
> usecount (and so without using vget). These won't notice if they aquire
> the lock while another thread is in the middle of vclean(). But I'm not
> sure they properly check that the vnode has not been vclean'ed once they
> hold the interlock either :(
> I added some code to try to detect places using vnodes without
> proper reference counting (v_data is set to NULL when the vnode is placed
> on the freelist and restored when it's removed from the free list).
> [...]

I forgot to mention a third suspicious code: nfs client.
Especially nfs_clearcommit() which goes though the list of vnodes for the
mount point, but doesn't do lock/refcount on the vnodes, and of course
don't check if it has been clean'ed or not

Manuel Bouyer, LIP6, Universite Paris VI.  
     NetBSD: 26 ans d'experience feront toujours la difference

Home | Main Index | Thread Index | Old Index