diff options
Diffstat (limited to 'sys/kern/kern_fork.c')
-rw-r--r-- | sys/kern/kern_fork.c | 50 |
1 files changed, 2 insertions, 48 deletions
diff --git a/sys/kern/kern_fork.c b/sys/kern/kern_fork.c index 732712b32fd8d..26cbe47576d6e 100644 --- a/sys/kern/kern_fork.c +++ b/sys/kern/kern_fork.c @@ -36,7 +36,7 @@ * SUCH DAMAGE. * * @(#)kern_fork.c 8.6 (Berkeley) 4/8/94 - * $Id: kern_fork.c,v 1.53 1998/12/19 02:55:33 julian Exp $ + * $Id: kern_fork.c,v 1.50 1997/12/12 04:00:58 dyson Exp $ */ #include "opt_ktrace.h" @@ -62,10 +62,6 @@ #include <vm/vm_extern.h> #include <vm/vm_zone.h> -#ifdef COMPAT_LINUX_THREADS -#include <machine/frame.h> -#include <sys/user.h> -#endif /* COMPAT_LINUX_THREADS */ #ifdef SMP static int fast_vfork = 0; /* Doesn't work on SMP yet. */ #else @@ -275,8 +271,7 @@ retry: again: for (; p2 != 0; p2 = p2->p_list.le_next) { while (p2->p_pid == nextpid || - p2->p_pgrp->pg_id == nextpid || - p2->p_session->s_sid == nextpid) { + p2->p_pgrp->pg_id == nextpid) { nextpid++; if (nextpid >= pidchecked) goto retry; @@ -286,9 +281,6 @@ again: if (p2->p_pgrp->pg_id > nextpid && pidchecked > p2->p_pgrp->pg_id) pidchecked = p2->p_pgrp->pg_id; - if (p2->p_session->s_sid > nextpid && - pidchecked > p2->p_session->s_sid) - pidchecked = p2->p_session->s_sid; } if (!doingzomb) { doingzomb = 1; @@ -329,44 +321,6 @@ again: p2->p_cred->p_refcnt = 1; crhold(p1->p_ucred); -#ifdef COMPAT_LINUX_THREADS - if (flags & RFSIGSHARE) { - p2->p_procsig = p1->p_procsig; - p2->p_procsig->ps_refcnt++; - if (p1->p_sigacts == &p1->p_addr->u_sigacts) { - struct sigacts *newsigacts; - int s; - - if (p2->p_procsig->ps_refcnt != 2) - printf ("PID:%d Creating shared sigacts with procsig->ps_refcnt %d\n", - p2->p_pid, p2->p_procsig->ps_refcnt); - /* Create the shared sigacts structure */ - MALLOC (newsigacts, struct sigacts *, sizeof (struct sigacts), - M_SUBPROC, M_WAITOK); - s = splhigh(); - /* Set p_sigacts to the new shared structure. Note that this - * is updating p1->p_sigacts at the same time, since p_sigacts - * is just a pointer to the shared p_procsig->ps_sigacts. - */ - p2->p_sigacts = newsigacts; - /* Copy in the values from the u area */ - *p2->p_sigacts = p1->p_addr->u_sigacts; - splx (s); - } - } else { - MALLOC (p2->p_procsig, struct procsig *, sizeof(struct procsig), - M_SUBPROC, M_WAITOK); - bcopy(&p1->p_procsig->ps_begincopy, &p2->p_procsig->ps_begincopy, - (unsigned)&p1->p_procsig->ps_endcopy - - (unsigned)&p1->p_procsig->ps_begincopy); - p2->p_procsig->ps_refcnt = 1; - /* Note that we fill in the values of sigacts in vm_fork */ - p2->p_sigacts = NULL; - } - if (flags & RFLINUXTHPN) { - p2->p_sigparent = SIGUSR1; - } -#endif /* COMPAT_LINUX_THREADS */ /* bump references to the text vnode (for procfs) */ p2->p_textvp = p1->p_textvp; if (p2->p_textvp) |