Use task_pgrp() task_session() in copy_process()
authorSukadev Bhattiprolu <sukadev@us.ibm.com>
Fri, 11 May 2007 05:23:04 +0000 (22:23 -0700)
committerLinus Torvalds <torvalds@woody.linux-foundation.org>
Fri, 11 May 2007 15:29:36 +0000 (08:29 -0700)
Use task_pgrp() and task_session() in copy_process(), and avoid find_pid()
call when attaching the task to its process group and session.

Signed-off-by: Sukadev Bhattiprolu <sukadev@us.ibm.com>
Cc: Cedric Le Goater <clg@fr.ibm.com>
Cc: Dave Hansen <haveblue@us.ibm.com>
Cc: Serge Hallyn <serue@us.ibm.com>
Cc: <containers@lists.osdl.org>
Acked-by: Eric W. Biederman <ebiederm@xmission.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
kernel/fork.c

index cf13c44f3da3bc2986bc519542198e418efb6138..083bf8953ce82d9ad28cc7e7e82d47714917b4f2 100644 (file)
@@ -1249,14 +1249,11 @@ static struct task_struct *copy_process(unsigned long clone_flags,
                        __ptrace_link(p, current->parent);
 
                if (thread_group_leader(p)) {
-                       pid_t pgid = process_group(current);
-                       pid_t sid = process_session(current);
-
                        p->signal->tty = current->signal->tty;
-                       p->signal->pgrp = pgid;
+                       p->signal->pgrp = process_group(current);
                        set_signal_session(p->signal, process_session(current));
-                       attach_pid(p, PIDTYPE_PGID, find_pid(pgid));
-                       attach_pid(p, PIDTYPE_SID, find_pid(sid));
+                       attach_pid(p, PIDTYPE_PGID, task_pgrp(current));
+                       attach_pid(p, PIDTYPE_SID, task_session(current));
 
                        list_add_tail_rcu(&p->tasks, &init_task.tasks);
                        __get_cpu_var(process_counts)++;