Date: Wed, 10 Aug 2005 12:18:12 +0200 From: Suleiman Souhlal <ssouhlal@FreeBSD.org> To: Don Lewis <truckman@FreeBSD.org> Cc: kan@FreeBSD.org, freebsd-current@FreeBSD.org, thierry@herbelot.com Subject: Re: panic: lock (sleep mutex) vnode interlock not locked Message-ID: <50B7B998-A1A3-4AF1-8BE1-DF61E0D1E950@FreeBSD.org> In-Reply-To: <200508101002.j7AA2D0U099849@gw.catspoiler.org> References: <200508101002.j7AA2D0U099849@gw.catspoiler.org>
next in thread | previous in thread | raw e-mail | index | archive | help
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@vt.edu The FreeBSD Project | ssouhlal@FreeBSD.org
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?50B7B998-A1A3-4AF1-8BE1-DF61E0D1E950>