diff options
author | Mateusz Guzik <mjg@FreeBSD.org> | 2017-11-11 18:04:39 +0000 |
---|---|---|
committer | Mateusz Guzik <mjg@FreeBSD.org> | 2017-11-11 18:04:39 +0000 |
commit | 6e1619dae3fc9083d1edf39e3835adc4acebb39c (patch) | |
tree | faa987765ff7185e8bff6ad1a1ccfae1999f9863 /sys/kern/kern_sig.c | |
parent | 272640b7fc579e5045eb4e6ad830bc89fbcae748 (diff) | |
download | src-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.c | 6 |
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) |