Subject: Re: CVS commit: src
To: None <hannken@netbsd.org>
From: YAMAMOTO Takashi <yamt@mwd.biglobe.ne.jp>
List: tech-kern
Date: 06/21/2004 09:09:10
> > > > > Module Name:	src
> > > > > Committed By:	hannken
> > > > > Date:		Tue May 25 14:55:47 UTC 2004
> > > > 
> > > > > - Add function transferlockers to transfer any waiting processes from
> > > > >   one lock to another.
> > > > 
> > > > i strongly object against adding a new fancy lockmgr feature.
> > > > in this case, it should be handled in an ffs-internal manner.
> > > 
> > > Well, what else should he have done? He has to move the sleepers from one
> > > lock to another, given what he's doing (I looked hard at this at the time
> > > it was added). At the time he decides to do the transfer, the sleepers are
> > > ALREADY asleep on a lock. So there's no ffs-internal way to handle this; 
> > > the sleepers are already outside of the ffs code.
> > 
> > i think that having some tricks in VOP_LOCK/UNLOCK/ISLOCKED is enough.
> > (in addition to stopping exporting v_vnlock, of course.)
> 
> What "tricks" could merge locks A and B into B?

something like this:
	ffs_lock(...)
	{

		genfs_lock(vp, ...);
		if (vp is snapshot) {
			lockmgr(snaplk, ...);
		}
	}

YAMAMOTO Takashi