Changeset View
Changeset View
Standalone View
Standalone View
sys/kern/kern_fork.c
Show First 20 Lines • Show All 386 Lines • ▼ Show 20 Lines | bzero(&p2->p_startzero, | ||||
__rangeof(struct proc, p_startzero, p_endzero)); | __rangeof(struct proc, p_startzero, p_endzero)); | ||||
/* Tell the prison that we exist. */ | /* Tell the prison that we exist. */ | ||||
prison_proc_hold(p2->p_ucred->cr_prison); | prison_proc_hold(p2->p_ucred->cr_prison); | ||||
p2->p_state = PRS_NEW; /* protect against others */ | p2->p_state = PRS_NEW; /* protect against others */ | ||||
p2->p_pid = fork_findpid(fr->fr_flags); | p2->p_pid = fork_findpid(fr->fr_flags); | ||||
AUDIT_ARG_PID(p2->p_pid); | AUDIT_ARG_PID(p2->p_pid); | ||||
TSFORK(p2->p_pid, p1->p_pid); | |||||
sx_xlock(&allproc_lock); | sx_xlock(&allproc_lock); | ||||
LIST_INSERT_HEAD(&allproc, p2, p_list); | LIST_INSERT_HEAD(&allproc, p2, p_list); | ||||
allproc_gen++; | allproc_gen++; | ||||
sx_xunlock(&allproc_lock); | sx_xunlock(&allproc_lock); | ||||
sx_xlock(PIDHASHLOCK(p2->p_pid)); | sx_xlock(PIDHASHLOCK(p2->p_pid)); | ||||
LIST_INSERT_HEAD(PIDHASH(p2->p_pid), p2, p_hash); | LIST_INSERT_HEAD(PIDHASH(p2->p_pid), p2, p_hash); | ||||
▲ Show 20 Lines • Show All 756 Lines • Show Last 20 Lines |