From owner-freebsd-fs Sun Oct 25 04:13:44 1998 Return-Path: Received: (from majordom@localhost) by hub.freebsd.org (8.8.8/8.8.8) id EAA09808 for freebsd-fs-outgoing; Sun, 25 Oct 1998 04:13:44 -0800 (PST) (envelope-from owner-freebsd-fs@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 EAA09803 for ; Sun, 25 Oct 1998 04:13:43 -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 MAA01339; Sun, 25 Oct 1998 12:13:51 GMT (envelope-from michaelh@cet.co.jp) Date: Sun, 25 Oct 1998 21:13:51 +0900 (JST) From: Michael Hancock To: Love cc: freebsd-fs@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-fs@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.org On Sun, 25 Oct 1998, Michael Hancock wrote: > 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. Sorry, let me guess. You're trying to cache vnodes but the kernel wants to control the lifetime of vnodes. With the global vnode management policy and how deadfs works this is tricky. You might want to look at how the Coda people solved this, I don't have a clue. Regards, Mike To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-fs" in the body of the message