From: Sukadev Bhattiprolu <[EMAIL PROTECTED]>
Subject: [PATCH 4/5] Remove the likely(pid) check in copy_process

Now that we pass in a struct pid parameter to copy_process()
and even the swapper (pid_t == 0) has a valid struct pid,
we no longer need this check.

Changelog: 
        Per Eric Biederman's comments, moved this out to a separate
        patch for easier review.

Signed-off-by: Sukadev Bhattiprolu <[EMAIL PROTECTED]>
Cc: Cedric Le Goater <[EMAIL PROTECTED]>
Cc: Dave Hansen <[EMAIL PROTECTED]>
Cc: Serge Hallyn <[EMAIL PROTECTED]>
Cc: [EMAIL PROTECTED]
Acked-by: Eric W. Biederman <[EMAIL PROTECTED]>

---
 kernel/fork.c |   34 ++++++++++++++++------------------
 1 file changed, 16 insertions(+), 18 deletions(-)

Index: lx26-20-mm2c/kernel/fork.c
===================================================================
--- lx26-20-mm2c.orig/kernel/fork.c     2007-02-28 15:08:46.000000000 -0800
+++ lx26-20-mm2c/kernel/fork.c  2007-02-28 15:33:20.000000000 -0800
@@ -1249,26 +1249,24 @@ static struct task_struct *copy_process(
                }
        }
 
-       if (likely(p->pid)) {
-               add_parent(p);
-               tracehook_init_task(p);
-
-               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;
-                       set_signal_session(p->signal, process_session(current));
-                       attach_pid(p, PIDTYPE_PGID, find_pid(pgid));
-                       attach_pid(p, PIDTYPE_SID, find_pid(sid));
+       add_parent(p);
+       tracehook_init_task(p);
 
-                       list_add_tail_rcu(&p->tasks, &init_task.tasks);
-                       __get_cpu_var(process_counts)++;
-               }
-               attach_pid(p, PIDTYPE_PID, pid);
-               nr_threads++;
+       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;
+               set_signal_session(p->signal, process_session(current));
+               attach_pid(p, PIDTYPE_PGID, find_pid(pgid));
+               attach_pid(p, PIDTYPE_SID, find_pid(sid));
+
+               list_add_tail_rcu(&p->tasks, &init_task.tasks);
+               __get_cpu_var(process_counts)++;
        }
+       attach_pid(p, PIDTYPE_PID, pid);
+       nr_threads++;
 
        total_forks++;
        spin_unlock(&current->sighand->siglock);
_______________________________________________
Containers mailing list
[EMAIL PROTECTED]
https://lists.osdl.org/mailman/listinfo/containers

_______________________________________________
Devel mailing list
Devel@openvz.org
https://openvz.org/mailman/listinfo/devel

Reply via email to