diff --git a/sys/src/9/port/proc.c b/sys/src/9/port/proc.c index 3abc16080..06bdf474e 100644 --- a/sys/src/9/port/proc.c +++ b/sys/src/9/port/proc.c @@ -644,6 +644,7 @@ newproc(void) p->nargs = 0; p->setargs = 0; memset(p->seg, 0, sizeof p->seg); + p->parentpid = 0; p->noteid = pidalloc(p); if(p->kstack == 0) p->kstack = smalloc(KSTACK); diff --git a/sys/src/9/port/sysproc.c b/sys/src/9/port/sysproc.c index c4075fa1e..177c4a798 100644 --- a/sys/src/9/port/sysproc.c +++ b/sys/src/9/port/sysproc.c @@ -169,10 +169,8 @@ sysrfork(ulong *arg) forkchild(p, up->dbgreg); p->parent = up; - p->parentpid = up->pid; - if(flag&RFNOWAIT) - p->parentpid = 0; - else { + if((flag&RFNOWAIT) == 0){ + p->parentpid = up->pid; lock(&up->exl); up->nchild++; unlock(&up->exl);