Date: Mon, 26 Oct 1998 19:24:37 +0000 (GMT) From: Terry Lambert <tlambert@primenet.com> To: art@stacken.kth.se (Artur Grabowski) Cc: lha@s3.kth.se, freebsd-fs@FreeBSD.ORG, freebsd-bugs@FreeBSD.ORG, kom-arla@stacken.kth.se Subject: Re: deadfs in FreeBSD 3.0/current ? Message-ID: <199810261924.MAA15542@usr04.primenet.com> In-Reply-To: <lubn26k66ev.fsf@pizza.stacken.kth.se> from "Artur Grabowski" at Oct 25, 98 03:51:52 pm
next in thread | previous in thread | raw e-mail | index | archive | help
> > 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(). Oh, look. People have started trying to do real work in the VFS code, and the first thing that rears its ugly head is a stacking layer issue that I identified about three years ago. As a workaround for the brain-damage in this area, look at the handling of vnodes of type VT_TFS, since TFS handles it's own vnode pool by severability rather than by correction of the interface bogosity. Terry Lambert terry@lambert.org --- Any opinions in this posting are my own and not those of my present or previous employers. To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-bugs" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199810261924.MAA15542>