Date: Wed, 22 Oct 1997 02:09:21 +0000 (GMT) From: Terry Lambert <tlambert@primenet.com> To: toor@dyson.iquest.net (John S. Dyson) Cc: roberto@keltia.freenix.fr, current@FreeBSD.ORG Subject: Re: nullfs & current Message-ID: <199710220209.TAA09840@usr03.primenet.com> In-Reply-To: <199710201837.NAA11707@dyson.iquest.net> from "John S. Dyson" at Oct 20, 97 01:37:27 pm
next in thread | previous in thread | raw e-mail | index | archive | help
> > > calling vnode_pager_uncache() null_remove() would be wrong, the file > > > may still be open. > > > > Right. > > > Not quite. > > I was wrong there, but the underlying object that is pointed to BOTH the > nullfs layer and the underlying error should have it's reference count > decreased. If the reference count of the object is ONE, and the VNODE > is referred to only by that object, then the vnode_pager_uncache should > be done. Or.... more specifically, there needs to be per FS VOP_PUTPAGE/VOP_GETPAGE that the vnode pager can call that will either manage the pages off the upper level vnode, or refer the operation to the underlying vnode where a single instance of the backing page is referenced, instead. The vnode_pager_uncache is really a reference kludge to get around not having per PS page reference mechanisms. At worst, pages in an alias (upper level) vnode should be referenced by descriptor, not directly. You can not discard the upper level without discarding the lower level. This kind of goes back to my long ago request for a per FS VOP_VRELE... Terry Lambert terry@lambert.org --- Any opinions in this posting are my own and not those of my present or previous employers.
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199710220209.TAA09840>