Remove useless proc lookup from sysctl_out_proc
This commit is contained in:
parent
2deab8647a
commit
3aa5eba714
@ -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);
|
||||
|
Loading…
x
Reference in New Issue
Block a user