diff options
author | Clark Williams <williams@redhat.com> | 2012-01-05 12:51:32 -0600 |
---|---|---|
committer | Clark Williams <williams@redhat.com> | 2012-01-05 12:51:32 -0600 |
commit | d76fe430665fac3f44ee88958713ecc524fd778d (patch) | |
tree | 00206c8b11eb2084d38eeccfe4b41f5e89fb779c /kernel/exit.c | |
parent | 63076d7f7f7f2650e5d0a4fa5dd2c412a255c237 (diff) | |
parent | 805a6af8dba5dfdd35ec35dc52ec0122400b2610 (diff) |
Merge commit 'v3.2' into rt-3.2-rt9v3.2-rt9
Diffstat (limited to 'kernel/exit.c')
-rw-r--r-- | kernel/exit.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/kernel/exit.c b/kernel/exit.c index 8eab62fac37a..90757807b27b 100644 --- a/kernel/exit.c +++ b/kernel/exit.c @@ -1540,8 +1540,15 @@ static int wait_consider_task(struct wait_opts *wo, int ptrace, } /* dead body doesn't have much to contribute */ - if (p->exit_state == EXIT_DEAD) + if (unlikely(p->exit_state == EXIT_DEAD)) { + /* + * But do not ignore this task until the tracer does + * wait_task_zombie()->do_notify_parent(). + */ + if (likely(!ptrace) && unlikely(ptrace_reparented(p))) + wo->notask_error = 0; return 0; + } /* slay zombie? */ if (p->exit_state == EXIT_ZOMBIE) { |