Re: panic: lock (sleep mutex) vnode interlock not locked

From: Suleiman Souhlal <ssouhlal_at_FreeBSD.org>
Date: Wed, 10 Aug 2005 12:18:12 +0200
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
Received on Wed Aug 10 2005 - 08:18:30 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:38:41 UTC