diff options
Diffstat (limited to 'kernel')
-rw-r--r-- | kernel/exit.c | 10 | ||||
-rw-r--r-- | kernel/fork.c | 2 | ||||
-rw-r--r-- | kernel/sys.c | 4 |
3 files changed, 4 insertions, 12 deletions
diff --git a/kernel/exit.c b/kernel/exit.c index 384f09caf2ef..3bec141c82f6 100644 --- a/kernel/exit.c +++ b/kernel/exit.c | |||
@@ -357,16 +357,12 @@ static void reparent_to_kthreadd(void) | |||
357 | void __set_special_pids(struct pid *pid) | 357 | void __set_special_pids(struct pid *pid) |
358 | { | 358 | { |
359 | struct task_struct *curr = current->group_leader; | 359 | struct task_struct *curr = current->group_leader; |
360 | pid_t nr = pid_nr(pid); | ||
361 | 360 | ||
362 | if (task_session(curr) != pid) { | 361 | if (task_session(curr) != pid) |
363 | change_pid(curr, PIDTYPE_SID, pid); | 362 | change_pid(curr, PIDTYPE_SID, pid); |
364 | set_task_session(curr, nr); | 363 | |
365 | } | 364 | if (task_pgrp(curr) != pid) |
366 | if (task_pgrp(curr) != pid) { | ||
367 | change_pid(curr, PIDTYPE_PGID, pid); | 365 | change_pid(curr, PIDTYPE_PGID, pid); |
368 | set_task_pgrp(curr, nr); | ||
369 | } | ||
370 | } | 366 | } |
371 | 367 | ||
372 | static void set_special_pids(struct pid *pid) | 368 | static void set_special_pids(struct pid *pid) |
diff --git a/kernel/fork.c b/kernel/fork.c index adbea16ec649..f74458231449 100644 --- a/kernel/fork.c +++ b/kernel/fork.c | |||
@@ -1265,8 +1265,6 @@ static struct task_struct *copy_process(unsigned long clone_flags, | |||
1265 | p->signal->leader_pid = pid; | 1265 | p->signal->leader_pid = pid; |
1266 | tty_kref_put(p->signal->tty); | 1266 | tty_kref_put(p->signal->tty); |
1267 | p->signal->tty = tty_kref_get(current->signal->tty); | 1267 | p->signal->tty = tty_kref_get(current->signal->tty); |
1268 | set_task_pgrp(p, task_pgrp_nr(current)); | ||
1269 | set_task_session(p, task_session_nr(current)); | ||
1270 | attach_pid(p, PIDTYPE_PGID, task_pgrp(current)); | 1268 | attach_pid(p, PIDTYPE_PGID, task_pgrp(current)); |
1271 | attach_pid(p, PIDTYPE_SID, task_session(current)); | 1269 | attach_pid(p, PIDTYPE_SID, task_session(current)); |
1272 | list_add_tail_rcu(&p->tasks, &init_task.tasks); | 1270 | list_add_tail_rcu(&p->tasks, &init_task.tasks); |
diff --git a/kernel/sys.c b/kernel/sys.c index 37f458e6882a..742cefa527e6 100644 --- a/kernel/sys.c +++ b/kernel/sys.c | |||
@@ -1013,10 +1013,8 @@ SYSCALL_DEFINE2(setpgid, pid_t, pid, pid_t, pgid) | |||
1013 | if (err) | 1013 | if (err) |
1014 | goto out; | 1014 | goto out; |
1015 | 1015 | ||
1016 | if (task_pgrp(p) != pgrp) { | 1016 | if (task_pgrp(p) != pgrp) |
1017 | change_pid(p, PIDTYPE_PGID, pgrp); | 1017 | change_pid(p, PIDTYPE_PGID, pgrp); |
1018 | set_task_pgrp(p, pid_nr(pgrp)); | ||
1019 | } | ||
1020 | 1018 | ||
1021 | err = 0; | 1019 | err = 0; |
1022 | out: | 1020 | out: |