From owner-freebsd-bugs Sun Oct 25 06:52:06 1998 Return-Path: Received: (from majordom@localhost) by hub.freebsd.org (8.8.8/8.8.8) id GAA17708 for freebsd-bugs-outgoing; Sun, 25 Oct 1998 06:52:06 -0800 (PST) (envelope-from owner-freebsd-bugs@FreeBSD.ORG) Received: from sundance.stacken.kth.se (sundance.stacken.kth.se [130.237.234.41]) by hub.freebsd.org (8.8.8/8.8.8) with ESMTP id GAA17703; Sun, 25 Oct 1998 06:52:02 -0800 (PST) (envelope-from art@stacken.kth.se) Received: from pizza.stacken.kth.se (pizza.stacken.kth.se [130.237.234.73]) by sundance.stacken.kth.se (8.8.8/8.8.8) with ESMTP id PAA12316; Sun, 25 Oct 1998 15:51:26 +0100 (MET) Received: (from art@localhost) by pizza.stacken.kth.se (8.8.7/8.8.7) id PAA09327; Sun, 25 Oct 1998 15:51:53 +0100 (MET) To: Love Cc: freebsd-fs@FreeBSD.ORG, freebsd-bugs@FreeBSD.ORG, kom-arla@stacken.kth.se Subject: Re: deadfs in FreeBSD 3.0/current ? References: <199810250912.JAA05540@nutcracker.e.kth.se> From: Artur Grabowski Date: 25 Oct 1998 15:51:52 +0100 In-Reply-To: Love's message of "Sun, 25 Oct 1998 09:12:55 GMT" Message-ID: Lines: 16 X-Mailer: Gnus v5.6.44/Emacs 19.34 Sender: owner-freebsd-bugs@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.org Love writes: > Hello > > 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. As a horrible workaround in OpenBSD I noted that LK_DRAIN is set in the VOP_LOCK call in vclean. (The code is not checked in, our tree is locked). And when the LK_DRAIN is set I don't do the chkvnlock(). //art To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-bugs" in the body of the message