Subject: Re: CVS commit: syssrc/sys/miscfs/nullfs
To: Bill Studenmund <wrstuden@netbsd.org>
From: enami tsugutomo <enami@sm.sony.co.jp>
List: tech-kern
Date: 03/26/2002 10:18:40
Bill Studenmund <wrstuden@netbsd.org> writes:

> I'm not sure if I understand your question.

I'm also not sure if I understand all your explanation :-).

> My thought is that when the only references on the collections of vnodes
> (because we could have a layer or two on a layer) are other layer vnodes,
> we call a routine which uses the VOP_UPCALL() (or whatever it becomes) to
> tell all the vnodes that the whole collection is now only on the free
> list, and that the nodes with references should preform special
> on-freelist processing. i.e. for ufs, VOP_UPDATE(). Not all of the nodes
> will be in the free list, so they shouldn't do all the inactivate
> processing.

When do you check it?  Whenever a vnode is released?

> Oh, I think you're suggesting, can't we just release the reference on the
> lower node in the inactivate routine?

Ah, yes.  Bad my english.

> We could, but how do we re-establish that reference? The problem is
> that it is perfectly valid to take the inactivated vnode off of the
> free list and start using it. Without a call to the file system's
> code (there is no VOP_REACTIVATE()). So how do we do that
> establishment?

Yes, we don't have necessary machinary.  Probably we need to hook two
case, one is when vnode is get off from free list to reuse for the
same purpose (reactivated) and other is to reuse for different purpose
(recycled).

enami.