summaryrefslogtreecommitdiffstats
path: root/sys/kern/kern_proc.c
diff options
context:
space:
mode:
Diffstat (limited to 'sys/kern/kern_proc.c')
-rw-r--r--sys/kern/kern_proc.c16
1 files changed, 7 insertions, 9 deletions
diff --git a/sys/kern/kern_proc.c b/sys/kern/kern_proc.c
index 6647f73..4b1f492 100644
--- a/sys/kern/kern_proc.c
+++ b/sys/kern/kern_proc.c
@@ -183,16 +183,14 @@ int
inferior(p)
register struct proc *p;
{
- int rval;
+ int rval = 1;
- PROC_LOCK_ASSERT(p, MA_OWNED);
- if (p == curproc)
- return (1);
- if (p->p_pid == 0)
- return (0);
- PROC_LOCK(p->p_pptr);
- rval = inferior(p->p_pptr);
- PROC_UNLOCK(p->p_pptr);
+ sx_assert(&proctree_lock, SX_LOCKED);
+ for (; p != curproc; p = p->p_pptr)
+ if (p->p_pid == 0) {
+ rval = 0;
+ break;
+ }
return (rval);
}
OpenPOWER on IntegriCloud