lkml.org 
[lkml]   [2011]   [Jun]   [22]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
Subject[PATCH 0/8] kill task_detached() (Was: ptrace: kill detah tracehooks)
Remove tracehook_notify_death(), and kill task_detached() logic.

IMHO, task_detached() is very strange and confusing. Sometimes it used
instead of !thread_group_leader() when the task is live. Sometimes it
is used to detect the EXIT_DEAD tasks (reparent_leader). Sometimes it
used after do_notify_parent() which sets ->exit_signal = -1 to signal
the caller it should set EXIT_DEAD.

Basically, this series does:

- s/task_detached/thread_group_leader/ when the caller need
to know if it is the group_leader or not

- s/task_detached/EXIT_DEAD/ when the caller needs to filter
out the EXIT_DEAD tasks

- changes do_notify_parent() to return a boolean and converts
the callers from

do_notify_parent(p);
if (task_detached(p))
// aha, do_notify_parent() changed ->exit_signal
release_task(p)
to
if (do_notify_parent(p))
release_task(p)
- kills the now unused task_detached()

- makes task->exit_signal "const" and redefines thread_group_leader()
for micro-optimization.


fs/exec.c | 1 +
include/linux/sched.h | 15 ++++-------
include/linux/tracehook.h | 34 --------------------------
kernel/exit.c | 58 +++++++++++++++++++-------------------------
kernel/ptrace.c | 32 +++++++++++++-----------
kernel/signal.c | 16 ++++++------
6 files changed, 57 insertions(+), 99 deletions(-)
Oleg.



\
 
 \ /
  Last update: 2011-06-22 23:13    [from the cache]
©2003-2011 Jasper Spaans