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/08/2001 13:38:59
>> How p->p_locks could be 1 for the server process when the only
>> locked vnode is locked by a completely unrelated process is a
>> mystery to me. Perhaps it's holding something other than a vnode
>> locked?
Well, either that or there's a bug in maintaining p_locks. I just had
it happen again, and this time there were no vnodes locked at all:
Locked vnodes
nfsd: locking botch in op 3 (before 0, after 1)
Looking at the code, I see something else suspicious: lockmgr() always
uses curproc. Can it ever be called from interrupt context?
LK_NOWAIT's presence argues that it can be, but if it is, the wrong
process's p_locks field will be updated.
der Mouse
mouse@rodents.montreal.qc.ca
7D C8 61 52 5D E7 2D 39 4E F1 31 3E E8 B3 27 4B