diff options
author | 2006-10-02 02:18:54 -0700 | |
---|---|---|
committer | 2006-10-02 07:57:24 -0700 | |
commit | b0fa9db6abdb2875a6d3069ddc6a2846a73fa5cd (patch) | |
tree | 840fd70ce726f94ff389d97dd012e53ae02f1dcf /kernel/pid.c | |
parent | [PATCH] proc: convert do_task_stat() to use lock_task_sighand() (diff) | |
download | linux-rng-b0fa9db6abdb2875a6d3069ddc6a2846a73fa5cd.tar.xz linux-rng-b0fa9db6abdb2875a6d3069ddc6a2846a73fa5cd.zip |
[PATCH] proc: drop tasklist lock in task_state()
task_state() needs tasklist_lock to protect ->parent/->real_parent. However
task->parent points to nowhere only when the actions below happen in order
1) release_task(task)
2) release_task(task->parent)
3) a grace period passed
But 3) implies that the memory ops from 1) should be finished, so pid_alive()
can't be true in such a case.
Otherwise, we don't care if ->parent/->real_parent changes under us.
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>
Diffstat (limited to 'kernel/pid.c')
0 files changed, 0 insertions, 0 deletions