2008-03-20 15:23:56

by Oleg Nesterov

[permalink] [raw]
Subject: [PATCH 3/4] pids: __set_special_pids: use change_pid() helper

Use change_pid() instead of detach_pid() + attach_pid() in __set_special_pids()

This way task_session() is not NULL in between.

Signed-off-by: Oleg Nesterov <[email protected]>

--- 25/kernel/exit.c~4_SETSID 2008-03-16 19:41:42.000000000 +0300
+++ 25/kernel/exit.c 2008-03-20 18:25:11.000000000 +0300
@@ -334,13 +334,11 @@ void __set_special_pids(struct pid *pid)
pid_t nr = pid_nr(pid);

if (task_session(curr) != pid) {
- detach_pid(curr, PIDTYPE_SID);
- attach_pid(curr, PIDTYPE_SID, pid);
+ change_pid(curr, PIDTYPE_SID, pid);
set_task_session(curr, nr);
}
if (task_pgrp(curr) != pid) {
- detach_pid(curr, PIDTYPE_PGID);
- attach_pid(curr, PIDTYPE_PGID, pid);
+ change_pid(curr, PIDTYPE_PGID, pid);
set_task_pgrp(curr, nr);
}
}