summaryrefslogtreecommitdiffstats
path: root/sys/kern/kern_proc.c
diff options
context:
space:
mode:
authorscottl <scottl@FreeBSD.org>2003-06-17 19:14:00 +0000
committerscottl <scottl@FreeBSD.org>2003-06-17 19:14:00 +0000
commit060172ae90f75f9554f6279e0475ca423dff5acd (patch)
tree82f07f940904300b0434bd1df17c2c62c20eb2ee /sys/kern/kern_proc.c
parent872a3e7bb49db37f4ed42b112fa646feb32391a9 (diff)
downloadFreeBSD-src-060172ae90f75f9554f6279e0475ca423dff5acd.zip
FreeBSD-src-060172ae90f75f9554f6279e0475ca423dff5acd.tar.gz
Drop the proc lock around SYSCTL_OUT in the no-threads case.
Submitted by: truckman
Diffstat (limited to 'sys/kern/kern_proc.c')
-rw-r--r--sys/kern/kern_proc.c2
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) {
OpenPOWER on IntegriCloud