Date: Wed, 10 Aug 2005 09:42:45 -0700 (PDT) From: Don Lewis <truckman@FreeBSD.org> To: ssouhlal@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: <200508101642.j7AGgjG3000645@gw.catspoiler.org> In-Reply-To: <7F34BFAD-BE04-4162-9F79-2E04DC46B209@FreeBSD.org>
next in thread | previous in thread | raw e-mail | index | archive | help
On 10 Aug, Suleiman Souhlal wrote: > Hello, > > On Aug 10, 2005, at 12:18 PM, Suleiman Souhlal wrote: > >> 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. > > I read your message a bit too fast. I think you are right. We should > probably move the check for VI_DOOMED etc, after we've acquired the > vnode lock. If you just move the test, you'll probably want to add LK_NOWAIT to the VOP_LOCK() call to avoid stalling on a vnode that is in use.
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200508101642.j7AGgjG3000645>