On Tue, Jun 01, 2010 at 11:44:03AM +0200, Juergen Hannken-Illjes wrote:
 > > It's not immediately clear how either of these ought to work, so
 > > I'm concerned that making the infrastructure less general will
 > > lead to problems.
 > 
 > 1) One upper to many lower vnodes
 >    This is a file system like unionfs.  It has to lock either one or
 >    many lower vnodes and does/will not earn anything of shared locks.
 > 
 > 2) Many upper to one lower vnode
 >    Such a layered file system could use a lock shared between ALL
 >    upper and the lower vnode.  Always taking the lower vnode's lock
 >    will do the same.  I see no need for shared locks here.

That seems plausible.

 > > In the long run I intend to make all the vnode ops symmetric with
 > > respect to locking, which should make a lot of this less toxic, but at
 > > the rate I've been able to work on this stuff we won't be there
 > > anytime soon.
 > 
 > The asymmetry comes from functions like null_mount() where a vnode gets
 > locked by the lower layer and unlocked by the upper layer.  A lower
 > layer expecting its VOP_LOCK() to be matched by a VOP_UNLOCK() will
 > fail badly.

...that is just broken, yes. If you can beat sanity into that, please do.

-- 
David A. Holland
dholl...@netbsd.org

Reply via email to