Skip site navigation (1)Skip section navigation (2)
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>