svn commit: r275796 - stable/10/sys/rpc
Konstantin Belousov
kib at FreeBSD.org
Mon Dec 15 10:58:03 UTC 2014
Author: kib
Date: Mon Dec 15 10:58:02 2014
New Revision: 275796
URL: https://svnweb.freebsd.org/changeset/base/275796
Log:
MFC r275618:
Check for stop condition in nfsd threads.
Modified:
stable/10/sys/rpc/svc.c
Directory Properties:
stable/10/ (props changed)
Modified: stable/10/sys/rpc/svc.c
==============================================================================
--- stable/10/sys/rpc/svc.c Mon Dec 15 10:50:26 2014 (r275795)
+++ stable/10/sys/rpc/svc.c Mon Dec 15 10:58:02 2014 (r275796)
@@ -1101,6 +1101,7 @@ svc_run_internal(SVCGROUP *grp, bool_t i
SVCXPRT *xprt;
enum xprt_stat stat;
struct svc_req *rqstp;
+ struct proc *p;
size_t sz;
int error;
@@ -1183,11 +1184,22 @@ svc_run_internal(SVCGROUP *grp, bool_t i
> grp->sg_minthreads)
&& !st->st_xprt)
break;
- } else if (error) {
+ } else if (error != 0) {
+ KASSERT(error == EINTR || error == ERESTART,
+ ("non-signal error %d", error));
mtx_unlock(&grp->sg_lock);
- svc_exit(pool);
- mtx_lock(&grp->sg_lock);
- break;
+ p = curproc;
+ PROC_LOCK(p);
+ if (P_SHOULDSTOP(p)) {
+ thread_suspend_check(0);
+ PROC_UNLOCK(p);
+ mtx_lock(&grp->sg_lock);
+ } else {
+ PROC_UNLOCK(p);
+ svc_exit(pool);
+ mtx_lock(&grp->sg_lock);
+ break;
+ }
}
continue;
}
More information about the svn-src-stable-10
mailing list