null_lookup() vnode locking wierdness
bp at freebsd.org
Sun Nov 23 22:53:59 PST 2003
On Sun, Nov 23, 2003 at 04:16:10PM -0800, Don Lewis wrote:
> On 23 Nov, I wrote:
> > I was trying to figure out why the VOP_UNLOCK() call in null_lookup()
> > was violating a vnode locking assertion, so I tossed a bunch of
> > ASSERT_VOP_LOCKED() calls into null_lookup(). I found something I don't
> > understand ...
> It looks like the easiest fix is to skip the VOP_UNLOCK() call in
> null_lookup() if dvp->v_vnlock == ldvp->v_vnlock.
Yes, this seems to be correct and necessary addition. At first sight,
the later code shouldn't blow because of that. BTW, buildworld -jN on top of
the null mount together with another buildword -jN on the underlying file
system helps a lot to discover vnode locking problems.
More information about the freebsd-current