On Tue, Jun 22, 2010 at 12:12:43PM +0000, Andrew Doran wrote: > On Tue, Jun 22, 2010 at 10:52:13AM +0000, Andrew Doran wrote: [snip] > > There is another closely related item. Strictly speaking, vget() should > > never be called without holding v_interlock. I had a scan of the places > > we are not specifying LK_INTERLOCK and they fall into two categories: > > > > - Should be using v_interlock + vget() but is racy. vnode can be > > reincarnated with a different identity, or freed or... > > > > - Abusing vget() to mean vref() + VOP_LOCK(). At these points the > > vnode's identity isn't going to change, so vget() isn't appropriate. > > So what I am saying is by applying your changes and fixing the uses of > vget(), we no longer have a need for LK_INTERLOCK.
Already had it on my todo list. Last time I looked it were 16 calls to vget() missing LK_INTERLOCK and two calls from vrelel() to vn_lock() with LK_INTERLOCK set. -- Juergen Hannken-Illjes - hann...@eis.cs.tu-bs.de - TU Braunschweig (Germany)