diff options
author | David S. Miller <davem@davemloft.net> | 2012-03-05 21:16:26 -0500 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2012-03-05 21:16:26 -0500 |
commit | f6a1ad4295f9291038380178d09978caf6982dd8 (patch) | |
tree | 7c35e8efe1812baca9c6b9674be1ee02a0495ec3 /fs/exec.c | |
parent | 036dafa28da1e2565a8529de2ae663c37b7a0060 (diff) | |
parent | f3969bf78f140f437f51787dfc2751943ba454d1 (diff) | |
download | linux-f6a1ad4295f9291038380178d09978caf6982dd8.tar.gz linux-f6a1ad4295f9291038380178d09978caf6982dd8.tar.bz2 linux-f6a1ad4295f9291038380178d09978caf6982dd8.zip |
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
Conflicts:
drivers/net/vmxnet3/vmxnet3_drv.c
Small vmxnet3 conflict with header size bug fix in 'net'.
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'fs/exec.c')
-rw-r--r-- | fs/exec.c | 18 |
1 files changed, 2 insertions, 16 deletions
diff --git a/fs/exec.c b/fs/exec.c index 92ce83a11e90..153dee14fe55 100644 --- a/fs/exec.c +++ b/fs/exec.c @@ -1915,7 +1915,6 @@ static int coredump_wait(int exit_code, struct core_state *core_state) { struct task_struct *tsk = current; struct mm_struct *mm = tsk->mm; - struct completion *vfork_done; int core_waiters = -EBUSY; init_completion(&core_state->startup); @@ -1927,22 +1926,9 @@ static int coredump_wait(int exit_code, struct core_state *core_state) core_waiters = zap_threads(tsk, mm, core_state, exit_code); up_write(&mm->mmap_sem); - if (unlikely(core_waiters < 0)) - goto fail; - - /* - * Make sure nobody is waiting for us to release the VM, - * otherwise we can deadlock when we wait on each other - */ - vfork_done = tsk->vfork_done; - if (vfork_done) { - tsk->vfork_done = NULL; - complete(vfork_done); - } - - if (core_waiters) + if (core_waiters > 0) wait_for_completion(&core_state->startup); -fail: + return core_waiters; } |