Remove useless proc lookup from sysctl_out_proc

This commit is contained in:
mjg 2017-11-11 18:02:23 +00:00
parent 2deab8647a
commit 3aa5eba714

View File

@ -1369,16 +1369,12 @@ kern_proc_out(struct proc *p, struct sbuf *sb, int flags)
}
static int
sysctl_out_proc(struct proc *p, struct sysctl_req *req, int flags,
int doingzomb)
sysctl_out_proc(struct proc *p, struct sysctl_req *req, int flags)
{
struct sbuf sb;
struct kinfo_proc ki;
struct proc *np;
int error, error2;
pid_t pid;
pid = p->p_pid;
sbuf_new_for_sysctl(&sb, (char *)&ki, sizeof(ki), req);
sbuf_clear_flags(&sb, SBUF_INCLUDENUL);
error = kern_proc_out(p, &sb, flags);
@ -1388,20 +1384,6 @@ sysctl_out_proc(struct proc *p, struct sysctl_req *req, int flags,
return (error);
else if (error2 != 0)
return (error2);
if (doingzomb)
np = zpfind(pid);
else {
if (pid == 0)
return (0);
np = pfind(pid);
}
if (np == NULL)
return (ESRCH);
if (np != p) {
PROC_UNLOCK(np);
return (ESRCH);
}
PROC_UNLOCK(np);
return (0);
}
@ -1435,7 +1417,7 @@ sysctl_kern_proc(SYSCTL_HANDLER_ARGS)
sx_slock(&proctree_lock);
error = pget((pid_t)name[0], PGET_CANSEE, &p);
if (error == 0)
error = sysctl_out_proc(p, req, flags, 0);
error = sysctl_out_proc(p, req, flags);
sx_sunlock(&proctree_lock);
return (error);
}
@ -1566,7 +1548,7 @@ sysctl_kern_proc(SYSCTL_HANDLER_ARGS)
}
error = sysctl_out_proc(p, req, flags, doingzomb);
error = sysctl_out_proc(p, req, flags);
if (error) {
sx_sunlock(&allproc_lock);
sx_sunlock(&proctree_lock);