summaryrefslogtreecommitdiffstats
path: root/mm
diff options
context:
space:
mode:
authorRoland McGrath <roland@redhat.com>2008-07-25 19:45:48 -0700
committerLinus Torvalds <torvalds@linux-foundation.org>2008-07-26 12:00:08 -0700
commitdae33574dcf5211e1f43c7e45fa29f73ba3e00cb (patch)
tree090eb4af17451836fb39cebf57fbee64a6bd23b5 /mm
parentdaded34be96b1975ff8539ff62ad8b158ce7d842 (diff)
downloadlinux-dae33574dcf5211e1f43c7e45fa29f73ba3e00cb.tar.gz
linux-dae33574dcf5211e1f43c7e45fa29f73ba3e00cb.tar.bz2
linux-dae33574dcf5211e1f43c7e45fa29f73ba3e00cb.zip
tracehook: release_task
This moves the ptrace-related logic from release_task into tracehook.h and ptrace.h inlines. It provides clean hooks both before and after locking tasklist_lock, for future tracing logic to do more cleanup without the lock. This also changes release_task() itself in the rare "zap_leader" case to set the leader to EXIT_DEAD before iterating. This maintains the invariant that release_task() only ever handles a task in EXIT_DEAD. This is a common-sense invariant that is already always true except in this one arcane case of zombie leader whose parent ignores SIGCHLD. This change is harmless and only costs one store in this one rare case. It keeps the expected state more consisently sane, which is nicer when debugging weirdness in release_task(). It also lets some future code in the tracehook entry points rely on this invariant for bookkeeping. Signed-off-by: Roland McGrath <roland@redhat.com> Cc: Oleg Nesterov <oleg@tv-sign.ru> Reviewed-by: Ingo Molnar <mingo@elte.hu> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'mm')
0 files changed, 0 insertions, 0 deletions