Subject: Re: nfsd: locking botch in op %d
To: None <tech-kern@netbsd.org>
From: der Mouse <mouse@Rodents.Montreal.QC.CA>
List: tech-kern
Date: 03/12/2001 11:22:36
>> It appears that the lock ufs_hashins() took on the vnode gets lost
>> somewhere in the checkalias() shuffle.

> In the case of an aliased device node, ufs_vinit calls vput() on the
> old vnode just before initializing the new one.  vput() means
> unlock+deref.  This one doesn't seem to show up in your trace output,
> but the lockmgr() call 2 lines below (still in ufs_vinit()) does.
> That's pretty much impossible.

> Are you sure that your trace takes the vput() into account?

If it makes it to lockmgr with curproc still set to the nfsd process,
it should.  I'll throw in more debugging code and see if I can find out
why it's behaving so oddly.

					der Mouse

			       mouse@rodents.montreal.qc.ca
		     7D C8 61 52 5D E7 2D 39  4E F1 31 3E E8 B3 27 4B