Do not call sorecieve() in the context of a socket callback as it causes

lock order reversals so->inpcb since we're called with the socket lock
held.
This commit is contained in:
Alfred Perlstein 2004-07-13 07:05:38 +00:00
parent 440382a953
commit d83ed0fac0
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=132086

View File

@ -433,16 +433,18 @@ nfsrv_rcv(struct socket *so, void *arg, int waitflag)
/* XXXRW: Unlocked read. */
if ((slp->ns_flag & SLP_VALID) == 0)
return;
#ifdef notdef
/*
* Define this to test for nfsds handling this under heavy load.
* We can't do this in the context of a socket callback
* because we're called with locks held.
* XXX: SMP
*/
if (waitflag == M_DONTWAIT) {
NFSD_LOCK();
slp->ns_flag |= SLP_NEEDQ;
goto dorecs;
}
#endif
NFSD_LOCK();
auio.uio_td = NULL;