__ptrace_detach: avoid task_detached(), check do_notify_parent()
commit9843a1e977977986d0a4c1000f2229b032572534
authorOleg Nesterov <oleg@redhat.com>
Wed, 22 Jun 2011 21:08:53 +0000 (22 23:08 +0200)
committerOleg Nesterov <oleg@redhat.com>
Mon, 27 Jun 2011 18:30:08 +0000 (27 20:30 +0200)
tree8c3d8a77ed8b2a021451a493aa47162977c8001b
parent45cdf5cc0703c537194588c63d53bad1f2539d36
__ptrace_detach: avoid task_detached(), check do_notify_parent()

__ptrace_detach() relies on the current obscure behaviour of
do_notify_parent(tsk) which changes tsk->exit_signal if this child
should be silently reaped. That is why we check task_detached(), it
is true if the task is sub-thread, or it is the group_leader but
its exit_signal was changed by do_notify_parent().

This is confusing, change the code to rely on !thread_group_leader()
or the value returned by do_notify_parent().

Signed-off-by: Oleg Nesterov <oleg@redhat.com>
Acked-by: Tejun Heo <tj@kernel.org>
kernel/ptrace.c