diff options
author | Oleg Nesterov <oleg@redhat.com> | 2009-04-02 19:58:39 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2009-04-02 22:05:02 -0400 |
commit | 1b0f7ffd0ea27cd3a0b9ca04e3df9522048c32a3 (patch) | |
tree | a8c27acdf95f55f93fe86661c6cba4cd36c8e4f1 /kernel | |
parent | 52ee2dfdd4f51cf422ea6a96a0846dc94244aa37 (diff) |
pids: kill signal_struct-> __pgrp/__session and friends
We are wasting 2 words in signal_struct without any reason to implement
task_pgrp_nr() and task_session_nr().
task_session_nr() has no callers since
2e2ba22ea4fd4bb85f0fa37c521066db6775cbef, we can remove it.
task_pgrp_nr() is still (I believe wrongly) used in fs/autofsX and
fs/coda.
This patch reimplements task_pgrp_nr() via task_pgrp_nr_ns(), and kills
__pgrp/__session and the related helpers.
The change in drivers/char/tty_io.c is cosmetic, but hopefully makes sense
anyway.
Signed-off-by: Oleg Nesterov <oleg@redhat.com>
Acked-by: Alan Cox <number6@the-village.bc.nu> [tty parts]
Cc: Cedric Le Goater <clg@fr.ibm.com>
Cc: Dave Hansen <haveblue@us.ibm.com>
Cc: Eric Biederman <ebiederm@xmission.com>
Cc: Pavel Emelyanov <xemul@openvz.org>
Cc: Serge Hallyn <serue@us.ibm.com>
Cc: Sukadev Bhattiprolu <sukadev@linux.vnet.ibm.com>
Cc: Roland McGrath <roland@redhat.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
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: |