Revision a98fdcef941e107eeabae622d85a1f476f25a160 authored by Oleg Nesterov on 14 January 2008, 21:02:37 UTC, committed by Linus Torvalds on 14 January 2008, 21:23:00 UTC
Commit 84427eaef1fb91704c7112bdb598c810003b99f3 (remove task_ppid_nr_ns) moved the task_tgid_nr_ns(task->real_parent) outside of lock_task_sighand(). This is wrong, ->real_parent could be freed/reused. Both ->parent/real_parent point to nothing after __exit_signal() because we remove the child from ->children list, and thus the child can't be reparented when its parent exits. rcu_read_lock() protects ->parent/real_parent, but _only_ if we know it was valid before we take rcu lock. Revert this part of the patch. Signed-off-by: Oleg Nesterov <oleg@tv-sign.ru> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
1 parent 4fd3670
File | Mode | Size |
---|---|---|
Makefile | -rw-r--r-- | 442 bytes |
asm-offsets.c | -rw-r--r-- | 804 bytes |
avr32_ksyms.c | -rw-r--r-- | 1.7 KB |
cpu.c | -rw-r--r-- | 8.4 KB |
entry-avr32b.S | -rw-r--r-- | 16.3 KB |
head.S | -rw-r--r-- | 914 bytes |
init_task.c | -rw-r--r-- | 1.1 KB |
irq.c | -rw-r--r-- | 1.5 KB |
kprobes.c | -rw-r--r-- | 6.1 KB |
module.c | -rw-r--r-- | 8.7 KB |
process.c | -rw-r--r-- | 10.5 KB |
ptrace.c | -rw-r--r-- | 10.2 KB |
semaphore.c | -rw-r--r-- | 4.6 KB |
setup.c | -rw-r--r-- | 14.1 KB |
signal.c | -rw-r--r-- | 7.2 KB |
stacktrace.c | -rw-r--r-- | 1.1 KB |
switch_to.S | -rw-r--r-- | 914 bytes |
sys_avr32.c | -rw-r--r-- | 1.5 KB |
syscall-stubs.S | -rw-r--r-- | 1.9 KB |
syscall_table.S | -rw-r--r-- | 6.7 KB |
time.c | -rw-r--r-- | 4.9 KB |
traps.c | -rw-r--r-- | 5.6 KB |
vmlinux.lds.S | -rw-r--r-- | 2.7 KB |
![swh spinner](/static/img/swh-spinner.gif)
Computing file changes ...