Roland McGrath
dae33574dc
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>
2008-07-26 12:00:08 -07:00
..
irq
use WARN() in kernel/irq/chip.c
2008-07-26 12:00:07 -07:00
power
kexec jump: save/restore device state
2008-07-26 12:00:04 -07:00
time
Merge branch 'timers-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip
2008-07-24 12:55:01 -07:00
trace
markers: fix sparse integer as NULL pointer warning
2008-07-25 10:53:45 -07:00
.gitignore
acct.c
bsdacct: fix and add comments around acct_process()
2008-07-25 10:53:47 -07:00
audit.c
[PATCH] remove useless argument type in audit_filter_user()
2008-06-24 23:36:35 -04:00
audit.h
audit_tree.c
auditfilter.c
[PATCH] remove useless argument type in audit_filter_user()
2008-06-24 23:36:35 -04:00
auditsc.c
x86_64 syscall audit fast-path
2008-07-23 17:47:32 -07:00
backtracetest.c
backtrace: replace timer with tasklet + completions
2008-06-27 18:09:16 +02:00
bounds.c
capability.c
security: filesystem capabilities refactor kernel code
2008-07-24 10:47:22 -07:00
cgroup.c
cgroup_clone: use pid of newly created task for new cgroup
2008-07-25 10:53:37 -07:00
cgroup_debug.c
compat.c
configs.c
cpu.c
workqueues: make get_online_cpus() useable for work->func()
2008-07-25 10:53:40 -07:00
cpuset.c
cpuset: two minor code-cleanups
2008-07-25 10:53:38 -07:00
delayacct.c
per-task-delay-accounting: update taskstats for memory reclaim delay
2008-07-25 10:53:47 -07:00
dma.c
exec_domain.c
remove CONFIG_KMOD from core kernel code
2008-07-22 19:24:31 +10:00
exit.c
tracehook: release_task
2008-07-26 12:00:08 -07:00
extable.c
fork.c
tracehook: vfork-done
2008-07-26 12:00:08 -07:00
futex.c
futexes: fix fault handling in futex_lock_pi
2008-06-23 13:31:15 +02:00
futex_compat.c
hrtimer.c
Merge branch 'generic-ipi' into generic-ipi-for-linus
2008-07-15 21:55:59 +02:00
itimer.c
kallsyms.c
kallsyms: fix potential overflow in binary search
2008-07-25 10:53:27 -07:00
Kconfig.hz
sched: fix hrtick & generic-ipi dependency
2008-07-23 11:18:28 +02:00
Kconfig.preempt
kexec.c
kexec jump: save/restore device state
2008-07-26 12:00:04 -07:00
kfifo.c
kgdb.c
kgdb: sparse fix
2008-06-24 10:52:55 -05:00
kmod.c
call_usermodehelper(): increase reliability
2008-07-25 10:53:28 -07:00
kprobes.c
kprobes: remove redundant config check
2008-07-25 10:53:30 -07:00
ksysfs.c
kthread.c
kthread: reduce stack pressure in create_kthread and kthreadd
2008-07-18 18:46:58 +02:00
latencytop.c
lockdep.c
Merge branch 'core/locking' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip
2008-07-14 14:55:13 -07:00
lockdep_internals.h
lockdep: add lock_class information to lock_chain and output it
2008-06-24 01:28:20 +02:00
lockdep_proc.c
lockdep: add lock_class information to lock_chain and output it
2008-06-24 01:28:20 +02:00
Makefile
build kernel/profile.o only when requested
2008-07-25 10:53:27 -07:00
marker.c
markers: use rcu_barrier_sched() and call_rcu_sched()
2008-07-25 10:53:45 -07:00
module.c
modules: Take a shortcut for checking if an address is in a module
2008-07-22 19:24:28 +10:00
mutex-debug.c
mutex-debug.h
mutex.c
mutex.h
notifier.c
ns_cgroup.c
cgroup_clone: use pid of newly created task for new cgroup
2008-07-25 10:53:37 -07:00
nsproxy.c
cgroup_clone: use pid of newly created task for new cgroup
2008-07-25 10:53:37 -07:00
panic.c
Add a WARN() macro; this is WARN_ON() + printk arguments
2008-07-25 10:53:29 -07:00
params.c
pid.c
pidns: remove now unused find_pid function.
2008-07-25 10:53:45 -07:00
pid_namespace.c
bsdacct: switch from global bsd_acct_struct instance to per-pidns one
2008-07-25 10:53:47 -07:00
pm_qos_params.c
pm_qos_params: BKL pushdown
2008-07-02 15:06:24 -06:00
posix-cpu-timers.c
posix-timers.c
posix timers: release_posix_timer: kill the bogus put_task_struct(->it_process);
2008-07-25 10:53:38 -07:00
printk.c
printk ratelimiting rewrite
2008-07-25 10:53:29 -07:00
profile.c
build kernel/profile.o only when requested
2008-07-25 10:53:27 -07:00
ptrace.c
ptrace children revamp
2008-07-16 18:02:33 -07:00
rcuclassic.c
Merge branch 'linus' into cpus4096
2008-07-16 00:29:07 +02:00
rcupdate.c
Merge branch 'generic-ipi-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip
2008-07-15 14:12:03 -07:00
rcupreempt.c
Merge branch 'linus' into cpus4096
2008-07-16 00:29:07 +02:00
rcupreempt_trace.c
rcutorture.c
rcu: make rcutorture even more vicious: invoke RCU readers from irq handlers (timers)
2008-06-26 09:24:33 +02:00
relay.c
relay: add buffer-only channels; useful for early logging
2008-07-26 12:00:04 -07:00
res_counter.c
cgroup files: convert res_counter_write() to be a cgroups write_string() handler
2008-07-25 10:53:36 -07:00
resource.c
rtmutex-debug.c
rtmutex-debug.h
rtmutex-tester.c
sysdev: Pass the attribute to the low level sysdev show/store function
2008-07-21 21:55:02 -07:00
rtmutex.c
rtmutex.h
rtmutex_common.h
rwsem.c
sched.c
Full conversion to early_initcall() interface, remove old interface
2008-07-26 12:00:04 -07:00
sched_clock.c
Merge branch 'sched/clock' into sched/devel
2008-07-14 12:19:13 +02:00
sched_cpupri.c
sched_cpupri.h
sched_debug.c
sched: add full schedstats to /proc/sched_debug
2008-06-27 14:31:31 +02:00
sched_fair.c
Merge branch 'sched/for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip
2008-07-23 19:36:53 -07:00
sched_features.h
sched: bias effective_load() error towards failing wake_affine().
2008-06-27 14:31:47 +02:00
sched_idletask.c
sched_rt.c
Merge branch 'sched-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip
2008-07-24 12:53:51 -07:00
sched_stats.h
sched: fix accounting in task delay accounting & migration
2008-07-04 12:50:23 +02:00
seccomp.c
semaphore.c
mmiotrace broken in linux-next (8-bit writes only)
2008-07-01 10:14:06 +02:00
signal.c
tracehook: unexport ptrace_notify
2008-07-26 12:00:08 -07:00
smp.c
Full conversion to early_initcall() interface, remove old interface
2008-07-26 12:00:04 -07:00
softirq.c
Full conversion to early_initcall() interface, remove old interface
2008-07-26 12:00:04 -07:00
softlockup.c
Full conversion to early_initcall() interface, remove old interface
2008-07-26 12:00:04 -07:00
spinlock.c
srcu.c
stacktrace.c
stacktrace: fix modular build, export print_stack_trace and save_stack_trace
2008-06-30 09:20:55 +02:00
stop_machine.c
cpumask: Replace cpumask_of_cpu with cpumask_of_cpu_ptr
2008-07-18 22:02:57 +02:00
sys.c
kexec jump
2008-07-26 12:00:04 -07:00
sys_ni.c
signalfd: fix undefined reference to `compat_sys_signalfd4' when !CONFIG_SIGNALFD
2008-07-25 11:35:41 -07:00
sysctl.c
printk ratelimiting rewrite
2008-07-25 10:53:29 -07:00
sysctl_check.c
sysctl: check for bogus modes
2008-07-25 10:53:45 -07:00
taskstats.c
taskstats: remove initialization of static per-cpu variable
2008-07-25 10:53:47 -07:00
test_kprobes.c
time.c
timeconst.pl
timer.c
Merge branch 'for-linus' of master.kernel.org:/home/rmk/linux-2.6-arm
2008-07-14 16:06:58 -07:00
tsacct.c
tsacct: fix bacct_add_tsk()'s use of do_div()
2008-07-25 10:53:47 -07:00
uid16.c
user.c
user_namespace.c
utsname.c
utsname_sysctl.c
wait.c
workqueue.c
workqueues: do CPU_UP_CANCELED if CPU_UP_PREPARE fails
2008-07-25 10:53:41 -07:00