diff options
author | scottl <scottl@FreeBSD.org> | 2003-06-17 19:14:00 +0000 |
---|---|---|
committer | scottl <scottl@FreeBSD.org> | 2003-06-17 19:14:00 +0000 |
commit | 060172ae90f75f9554f6279e0475ca423dff5acd (patch) | |
tree | 82f07f940904300b0434bd1df17c2c62c20eb2ee | |
parent | 872a3e7bb49db37f4ed42b112fa646feb32391a9 (diff) | |
download | FreeBSD-src-060172ae90f75f9554f6279e0475ca423dff5acd.zip FreeBSD-src-060172ae90f75f9554f6279e0475ca423dff5acd.tar.gz |
Drop the proc lock around SYSCTL_OUT in the no-threads case.
Submitted by: truckman
-rw-r--r-- | sys/kern/kern_proc.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/sys/kern/kern_proc.c b/sys/kern/kern_proc.c index c798b68..0625cf9 100644 --- a/sys/kern/kern_proc.c +++ b/sys/kern/kern_proc.c @@ -860,8 +860,10 @@ sysctl_out_proc(struct proc *p, struct sysctl_req *req, int flags) if (flags & KERN_PROC_NOTHREADS) { fill_kinfo_proc(p, &kinfo_proc); + PROC_UNLOCK(p); error = SYSCTL_OUT(req, (caddr_t)&kinfo_proc, sizeof(kinfo_proc)); + PROC_LOCK(p); } else { _PHOLD(p); FOREACH_THREAD_IN_PROC(p, td) { |