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
History
File Mode Size
Kconfig -rw-r--r-- 8.8 KB
Makefile -rw-r--r-- 1.1 KB
ip_vs_app.c -rw-r--r-- 13.3 KB
ip_vs_conn.c -rw-r--r-- 23.0 KB
ip_vs_core.c -rw-r--r-- 29.5 KB
ip_vs_ctl.c -rw-r--r-- 54.5 KB
ip_vs_dh.c -rw-r--r-- 5.8 KB
ip_vs_est.c -rw-r--r-- 4.6 KB
ip_vs_ftp.c -rw-r--r-- 9.2 KB
ip_vs_lblc.c -rw-r--r-- 14.4 KB
ip_vs_lblcr.c -rw-r--r-- 19.0 KB
ip_vs_lc.c -rw-r--r-- 3.1 KB
ip_vs_nq.c -rw-r--r-- 3.7 KB
ip_vs_proto.c -rw-r--r-- 4.9 KB
ip_vs_proto_ah.c -rw-r--r-- 3.7 KB
ip_vs_proto_esp.c -rw-r--r-- 3.7 KB
ip_vs_proto_tcp.c -rw-r--r-- 15.9 KB
ip_vs_proto_udp.c -rw-r--r-- 9.9 KB
ip_vs_rr.c -rw-r--r-- 3.0 KB
ip_vs_sched.c -rw-r--r-- 5.6 KB
ip_vs_sed.c -rw-r--r-- 4.1 KB
ip_vs_sh.c -rw-r--r-- 5.7 KB
ip_vs_sync.c -rw-r--r-- 23.2 KB
ip_vs_wlc.c -rw-r--r-- 3.9 KB
ip_vs_wrr.c -rw-r--r-- 5.3 KB
ip_vs_xmit.c -rw-r--r-- 13.1 KB

back to top