Source-Changes-D archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: CVS commit: src



On Mon, Jan 10, 2011 at 07:38:22PM +0100, Juergen Hannken-Illjes wrote:
 > This is not a random change.  Layered file systems take exactly one
 > reference on the lower vnode.  All references regarding layered
 > vnodes are only taken on the layer vnode.  So we get a bootom vnode
 > that is active (we are working on it) while it may have just one
 > reference.  The upper (layer) vnode has the "valid" reference
 > count.
 > 
 > Now when VOP_REVOKE() goes down the stack it will revoke the lowest
 > vnode but this vnode "looks" inactive.  Adjusting the lower vnode
 > refcount gets the (in respect to activity) right usecount on the
 > lowest vnode while VOP_REVOKE() works on the lowest vnode.

As far as I can tell it only uses the usecount to decide whether the
vnode is still active or not, so adding 1 temporarily should be
sufficient if the goal is to have it not disappear.

OTOH, it seems to me that it *should* disappear in that case, and also
that vrevoke() should also end up getting called on the layer vnode.

-- 
David A. Holland
dholland%netbsd.org@localhost


Home | Main Index | Thread Index | Old Index