From c4d1ec0cc5f9712d109ede311284321c2d797265 Mon Sep 17 00:00:00 2001 From: dchagin Date: Wed, 2 Mar 2011 19:39:42 +0000 Subject: [PATCH] MFC r218618: Slightly rewrite linux_fork: 1) Remove bogus error checking. 2) A new process exit from kernel through fork_trampoline(), so remove bogus check. git-svn-id: svn://svn.freebsd.org/base/stable/8@219195 ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f --- sys/compat/linux/linux_fork.c | 19 ++++++------------- 1 file changed, 6 insertions(+), 13 deletions(-) diff --git a/sys/compat/linux/linux_fork.c b/sys/compat/linux/linux_fork.c index 465f07fd4..ce8f55915 100644 --- a/sys/compat/linux/linux_fork.c +++ b/sys/compat/linux/linux_fork.c @@ -67,13 +67,9 @@ linux_fork(struct thread *td, struct linux_fork_args *args) if ((error = fork1(td, RFFDG | RFPROC | RFSTOPPED, 0, &p2)) != 0) return (error); - if (error == 0) { - td->td_retval[0] = p2->p_pid; - td->td_retval[1] = 0; - } + td->td_retval[0] = p2->p_pid; + td->td_retval[1] = 0; - if (td->td_retval[1] == 1) - td->td_retval[0] = 0; error = linux_proc_init(td, td->td_retval[0], 0); if (error) return (error); @@ -106,13 +102,10 @@ linux_vfork(struct thread *td, struct linux_vfork_args *args) /* Exclude RFPPWAIT */ if ((error = fork1(td, RFFDG | RFPROC | RFMEM | RFSTOPPED, 0, &p2)) != 0) return (error); - if (error == 0) { - td->td_retval[0] = p2->p_pid; - td->td_retval[1] = 0; - } - /* Are we the child? */ - if (td->td_retval[1] == 1) - td->td_retval[0] = 0; + + td->td_retval[0] = p2->p_pid; + td->td_retval[1] = 0; + error = linux_proc_init(td, td->td_retval[0], 0); if (error) return (error); -- 2.45.0