kill tracehook_notify_death()
authorOleg Nesterov <oleg@redhat.com>
Thu, 23 Jun 2011 17:06:50 +0000 (19:06 +0200)
committerOleg Nesterov <oleg@redhat.com>
Mon, 27 Jun 2011 18:30:08 +0000 (20:30 +0200)
commit45cdf5cc0703c537194588c63d53bad1f2539d36
tree579573d2cbe054d767a9f6b575b88836586fb7ce
parent53c8f9f199b239668e6b1a907735ee323a0d1ccd
kill tracehook_notify_death()

Kill tracehook_notify_death(), reimplement the logic in its caller,
exit_notify().

Also, change the exec_id's check to use thread_group_leader() instead
of task_detached(), this is more clear. This logic only applies to
the exiting leader, a sub-thread must never change its exit_signal.

Note: when the traced group leader exits the exit_signal-or-SIGCHLD
logic looks really strange:

- we notify the tracer even if !thread_group_empty() but
   do_wait(WEXITED) can't work until all threads exit

- if the tracer is real_parent, it is not clear why can't
  we use ->exit_signal event if !thread_group_empty()

-v2: do not try to fix the 2nd oddity to avoid the subtle behavior
     change mixed with reorganization, suggested by Tejun.

Signed-off-by: Oleg Nesterov <oleg@redhat.com>
Reviewed-by: Tejun Heo <tj@kernel.org>
include/linux/tracehook.h
kernel/exit.c