diff options
author | Alexander Motin <mav@FreeBSD.org> | 2014-06-09 15:00:43 +0000 |
---|---|---|
committer | Alexander Motin <mav@FreeBSD.org> | 2014-06-09 15:00:43 +0000 |
commit | 82dcc80db10592f5b01d02b7714e624ba1d611ab (patch) | |
tree | 1e55c3982fd13e416b6e16b2b14f6a0d5692e6bc /sys/rpc | |
parent | ada17d7bde4a06a86e408dd338e27bc82f312fba (diff) | |
download | src-82dcc80db10592f5b01d02b7714e624ba1d611ab.tar.gz src-82dcc80db10592f5b01d02b7714e624ba1d611ab.zip |
Fix race in r267221.
MFC after: 2 weeks
Notes
Notes:
svn path=/head/; revision=267278
Diffstat (limited to 'sys/rpc')
-rw-r--r-- | sys/rpc/svc.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/sys/rpc/svc.c b/sys/rpc/svc.c index b682b39d4f33..95d4c49c1ab0 100644 --- a/sys/rpc/svc.c +++ b/sys/rpc/svc.c @@ -1210,15 +1210,17 @@ svc_run_internal(SVCGROUP *grp, bool_t ismaster) */ if (pool->sp_assign) { stpref = pool->sp_assign(st, rqstp); + rqstp->rq_thread = stpref; STAILQ_INSERT_TAIL(&stpref->st_reqs, rqstp, rq_link); mtx_unlock(&stpref->st_lock); - rqstp->rq_thread = stpref; if (stpref != st) rqstp = NULL; - } else + } else { + rqstp->rq_thread = st; STAILQ_INSERT_TAIL(&st->st_reqs, rqstp, rq_link); + } } } while (rqstp == NULL && stat == XPRT_MOREREQS && grp->sg_state != SVCPOOL_CLOSING); |