mirror of https://gitee.com/openkylin/linux.git
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>
This commit is contained in:
parent
888ffc5923
commit
3f41854838
|
@ -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);
|
||||
|
||||
|
|
Loading…
Reference in New Issue