[PATCH] pid: Implement transfer_pid and use it to simplify de_thread
authorEric W. Biederman <ebiederm@xmission.com>
Wed, 27 Sep 2006 08:51:06 +0000 (01:51 -0700)
committerLinus Torvalds <torvalds@g5.osdl.org>
Wed, 27 Sep 2006 15:26:19 +0000 (08:26 -0700)
commitc18258c6f0848f97e85287f6271c511a092bb784
tree16c057a171b7623895ee208459392c1104193b84
parent35fa2048ab13d1be846be612e395c15c200bd51c
[PATCH] pid: Implement transfer_pid and use it to simplify de_thread

In de_thread we move pids from one process to another, a rather ugly case.
The function transfer_pid makes it clear what we are doing, and makes the
action atomic.  This is useful we ever want to atomically traverse the
process group and session lists, in a rcu safe manner.

Even if the atomic properties this change should be a win as transfer_pid
should be less code to execute than executing both attach_pid and
detach_pid, and this should make de_thread slightly smaller as only a
single function call needs to be emitted.  The only downside is that the
code might be slower to execute as the odds are against transfer_pid being
in cache.

Signed-off-by: Eric W. Biederman <ebiederm@xmission.com>
Cc: Oleg Nesterov <oleg@tv-sign.ru>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
fs/exec.c
include/linux/pid.h
kernel/pid.c