[PATCH] proc: convert do_task_stat() to use lock_task_sighand()
authorOleg Nesterov <oleg@tv-sign.ru>
Mon, 2 Oct 2006 09:18:53 +0000 (02:18 -0700)
committerLinus Torvalds <torvalds@g5.osdl.org>
Mon, 2 Oct 2006 14:57:24 +0000 (07:57 -0700)
commita593d6edeb0a5a2c6e6919b225cec668a375df52
treef61ea811ad6c9d6bbba9268bdb08cf507fab5e93
parent5e6b3f42edc20e988b186fbfb9eec174294222ea
[PATCH] proc: convert do_task_stat() to use lock_task_sighand()

Drop tasklist_lock. ->siglock protects almost all interesting data
(including sub-threads traversal) except:

->signal->tty
protected by tty_mutex

->real_parent
the task can't be unhashed while we are holding
->siglock, so ->real_parent can change from under us
but we can safely dereference it under rcu_read_lock()

->pgrp/->session
we can get inconsistent numbers if the task does
sys_setsid/daemonize at the same time. I hope this
is acceptable.

Signed-off-by: Oleg Nesterov <oleg@tv-sign.ru>
Cc: "Eric W. Biederman" <ebiederm@xmission.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
fs/proc/array.c