diff options
author | Oleg Nesterov <oleg@redhat.com> | 2013-07-03 15:08:25 -0700 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2013-07-03 16:08:02 -0700 |
commit | 3f4185483832ccf3d2977923db576fa689c2abce (patch) | |
tree | b977552009147be3c15097405f58f0519d29184a | |
parent | 888ffc5923e4343a78575918ab781e85fa22d244 (diff) | |
download | linux-3f4185483832ccf3d2977923db576fa689c2abce.tar.gz linux-3f4185483832ccf3d2977923db576fa689c2abce.tar.bz2 linux-3f4185483832ccf3d2977923db576fa689c2abce.zip |
fs/exec.c:de_thread(): use change_pid() rather than detach_pid/attach_pid
de_thread() can use change_pid() instead of detach + attach. This looks
better and this ensures that, say, next_thread() can never see a task with
->pid == NULL.
Signed-off-by: Oleg Nesterov <oleg@redhat.com>
Acked-by: "Eric W. Biederman" <ebiederm@xmission.com>
Cc: Michal Hocko <mhocko@suse.cz>
Cc: Pavel Emelyanov <xemul@parallels.com>
Cc: Sergey Dyasly <dserrg@gmail.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
-rw-r--r-- | fs/exec.c | 3 |
1 files changed, 1 insertions, 2 deletions
diff --git a/fs/exec.c b/fs/exec.c index 03b907cfd765..7619dddd5622 100644 --- a/fs/exec.c +++ b/fs/exec.c @@ -947,9 +947,8 @@ static int de_thread(struct task_struct *tsk) * Note: The old leader also uses this pid until release_task * is called. Odd but simple and correct. */ - detach_pid(tsk, PIDTYPE_PID); tsk->pid = leader->pid; - attach_pid(tsk, PIDTYPE_PID, task_pid(leader)); + change_pid(tsk, PIDTYPE_PID, task_pid(leader)); transfer_pid(leader, tsk, PIDTYPE_PGID); transfer_pid(leader, tsk, PIDTYPE_SID); |