From owner-freebsd-current Tue Oct 21 19:09:45 1997 Return-Path: Received: (from root@localhost) by hub.freebsd.org (8.8.7/8.8.7) id TAA26350 for current-outgoing; Tue, 21 Oct 1997 19:09:45 -0700 (PDT) (envelope-from owner-freebsd-current) Received: from smtp04.primenet.com (smtp04.primenet.com [206.165.5.85]) by hub.freebsd.org (8.8.7/8.8.7) with ESMTP id TAA26343 for ; Tue, 21 Oct 1997 19:09:42 -0700 (PDT) (envelope-from tlambert@usr03.primenet.com) Received: (from daemon@localhost) by smtp04.primenet.com (8.8.7/8.8.7) id TAA11618; Tue, 21 Oct 1997 19:09:29 -0700 (MST) Received: from usr03.primenet.com(206.165.6.203) via SMTP by smtp04.primenet.com, id smtpd011616; Tue Oct 21 19:09:27 1997 Received: (from tlambert@localhost) by usr03.primenet.com (8.8.5/8.8.5) id TAA09840; Tue, 21 Oct 1997 19:09:21 -0700 (MST) From: Terry Lambert Message-Id: <199710220209.TAA09840@usr03.primenet.com> Subject: Re: nullfs & current To: toor@dyson.iquest.net (John S. Dyson) Date: Wed, 22 Oct 1997 02:09:21 +0000 (GMT) Cc: roberto@keltia.freenix.fr, current@FreeBSD.ORG In-Reply-To: <199710201837.NAA11707@dyson.iquest.net> from "John S. Dyson" at Oct 20, 97 01:37:27 pm X-Mailer: ELM [version 2.4 PL23] Content-Type: text Sender: owner-freebsd-current@FreeBSD.ORG X-Loop: FreeBSD.org Precedence: bulk > > > 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.