panic: lock (sleep mutex) vnode interlock not locked
Suleiman Souhlal
ssouhlal at FreeBSD.org
Wed Aug 10 10:18:30 GMT 2005
Hi,
On Aug 10, 2005, at 12:02 PM, Don Lewis wrote:
> What is preventing VI_DOOMED from being set while we're waiting for
> VOP_LOCK()? Contrary to what the VOP_LOCK(9) man page says about
> LK_INTERLOCK, it looks like lockmgr() drops the vnode interlock before
> it attempts to grab the vnode lock.
VI_DOOMED is only set by vgonel(), and it requires both the vnode and
the interlock locked.
void
vgonel(struct vnode *vp)
{
struct thread *td;
int oweinact;
int active;
CTR1(KTR_VFS, "vgonel: vp %p", vp);
ASSERT_VOP_LOCKED(vp, "vgonel");
ASSERT_VI_LOCKED(vp, "vgonel");
--
Suleiman Souhlal | ssouhlal at vt.edu
The FreeBSD Project | ssouhlal at FreeBSD.org
More information about the freebsd-current
mailing list