From owner-freebsd-bugs Sun Oct 25 03:49:42 1998 Return-Path: Received: (from majordom@localhost) by hub.freebsd.org (8.8.8/8.8.8) id DAB05231 for freebsd-bugs-outgoing; Sun, 25 Oct 1998 03:49:42 -0800 (PST) (envelope-from owner-freebsd-bugs@FreeBSD.ORG) Received: from sv01.cet.co.jp (sv01.cet.co.jp [210.171.56.2]) by hub.freebsd.org (8.8.8/8.8.8) with ESMTP id DAA05189; Sun, 25 Oct 1998 03:49:36 -0800 (PST) (envelope-from michaelh@cet.co.jp) Received: from localhost (michaelh@localhost) by sv01.cet.co.jp (8.8.8/8.8.8) with SMTP id LAA01280; Sun, 25 Oct 1998 11:49:38 GMT (envelope-from michaelh@cet.co.jp) Date: Sun, 25 Oct 1998 20:49:38 +0900 (JST) From: Michael Hancock Reply-To: Michael Hancock To: Love cc: freebsd-fs@FreeBSD.ORG, freebsd-bugs@FreeBSD.ORG, kom-arla@stacken.kth.se Subject: Re: deadfs in FreeBSD 3.0/current ? In-Reply-To: Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Sender: owner-freebsd-bugs@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.org On 25 Oct 1998, Love wrote: > > > kern/vfs_subr.c:vclean() does a vp->v_flag |= VXLOCK; and after that > > > "calls" VOP_LOCK(). > > > > > > Now when the filesystem is deadfs (we use it in arla[1]), the call > > > ends up in miscfs/deadfs/dead_vnops.c:dead_lock() that calls > > > chkvnlock(). Now chkvnlock() sleeps when VXLOCK is set. > > > > > > Who will wake us up ? > > > > The wakeup at the bottom of vclean()? That code also clears VXLOCK. > > But that is done *after* the tsleep, and therefor that code will *never* be > reached. Kind of hard to wake yourself up. It will hang in > miscfs/deadfs/dead_vnops.c(1.24):240 forever. Umm... Why are you using deadfs in arla? I think you're breaking an invariant if vclean is trying to clean out something that's already dead. Kinda like a double free. Regards, Mike To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-bugs" in the body of the message