aboutsummaryrefslogtreecommitdiff
path: root/sys/kern/kern_sig.c
diff options
context:
space:
mode:
authorMateusz Guzik <mjg@FreeBSD.org>2017-11-11 18:04:39 +0000
committerMateusz Guzik <mjg@FreeBSD.org>2017-11-11 18:04:39 +0000
commit6e1619dae3fc9083d1edf39e3835adc4acebb39c (patch)
treefaa987765ff7185e8bff6ad1a1ccfae1999f9863 /sys/kern/kern_sig.c
parent272640b7fc579e5045eb4e6ad830bc89fbcae748 (diff)
downloadsrc-6e1619dae3fc9083d1edf39e3835adc4acebb39c.tar.gz
src-6e1619dae3fc9083d1edf39e3835adc4acebb39c.zip
Add pfind_any
It looks for both regular and zombie processes. This avoids allproc relocking previously seen with pfind -> zpfind calls.
Notes
Notes: svn path=/head/; revision=325721
Diffstat (limited to 'sys/kern/kern_sig.c')
-rw-r--r--sys/kern/kern_sig.c6
1 files changed, 2 insertions, 4 deletions
diff --git a/sys/kern/kern_sig.c b/sys/kern/kern_sig.c
index ea3b68e370c6..92a2b50d21de 100644
--- a/sys/kern/kern_sig.c
+++ b/sys/kern/kern_sig.c
@@ -1765,10 +1765,8 @@ sys_kill(struct thread *td, struct kill_args *uap)
if (uap->pid > 0) {
/* kill single process */
- if ((p = pfind(uap->pid)) == NULL) {
- if ((p = zpfind(uap->pid)) == NULL)
- return (ESRCH);
- }
+ if ((p = pfind_any(uap->pid)) == NULL)
+ return (ESRCH);
AUDIT_ARG_PROCESS(p);
error = p_cansignal(td, p, uap->signum);
if (error == 0 && uap->signum)