From 6c8a02699e41845b05ca4ae318d05d8ab56c7477 Mon Sep 17 00:00:00 2001 From: Sukadev Bhattiprolu Date: Thu, 10 May 2007 22:23:03 -0700 Subject: [PATCH] --- yaml --- r: 55919 b: refs/heads/master c: 85868995d9d82de5b0de38d695559daddffef893 h: refs/heads/master i: 55917: 60d2f517e82bdbc924ccafa682aabfe710b058fb 55915: e1e1b3aaafbcf282352479d21f50e5dee0740228 55911: 56d724753ec208b074c475053f5b9ade385b4b06 55903: c376a2b48162d61efa9c7d97dc99a2743812ab76 v: v3 --- [refs] | 2 +- trunk/kernel/fork.c | 11 ++++++----- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/[refs] b/[refs] index fb1e7cb4c68a..a771f6d2fc20 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 0e29b24aa6b3eb6c161cbb9e42fc20b47e67a7c6 +refs/heads/master: 85868995d9d82de5b0de38d695559daddffef893 diff --git a/trunk/kernel/fork.c b/trunk/kernel/fork.c index 6031800c94cf..cf13c44f3da3 100644 --- a/trunk/kernel/fork.c +++ b/trunk/kernel/fork.c @@ -956,7 +956,7 @@ static struct task_struct *copy_process(unsigned long clone_flags, unsigned long stack_size, int __user *parent_tidptr, int __user *child_tidptr, - int pid) + struct pid *pid) { int retval; struct task_struct *p = NULL; @@ -1023,7 +1023,7 @@ static struct task_struct *copy_process(unsigned long clone_flags, p->did_exec = 0; delayacct_tsk_init(p); /* Must remain after dup_task_struct() */ copy_flags(clone_flags, p); - p->pid = pid; + p->pid = pid_nr(pid); retval = -EFAULT; if (clone_flags & CLONE_PARENT_SETTID) if (put_user(p->pid, parent_tidptr)) @@ -1261,7 +1261,7 @@ static struct task_struct *copy_process(unsigned long clone_flags, list_add_tail_rcu(&p->tasks, &init_task.tasks); __get_cpu_var(process_counts)++; } - attach_pid(p, PIDTYPE_PID, find_pid(p->pid)); + attach_pid(p, PIDTYPE_PID, pid); nr_threads++; } @@ -1325,7 +1325,8 @@ struct task_struct * __cpuinit fork_idle(int cpu) struct task_struct *task; struct pt_regs regs; - task = copy_process(CLONE_VM, 0, idle_regs(®s), 0, NULL, NULL, 0); + task = copy_process(CLONE_VM, 0, idle_regs(®s), 0, NULL, NULL, + &init_struct_pid); if (!IS_ERR(task)) init_idle(task, cpu); @@ -1375,7 +1376,7 @@ long do_fork(unsigned long clone_flags, clone_flags |= CLONE_PTRACE; } - p = copy_process(clone_flags, stack_start, regs, stack_size, parent_tidptr, child_tidptr, nr); + p = copy_process(clone_flags, stack_start, regs, stack_size, parent_tidptr, child_tidptr, pid); /* * Do this prior waking up the new thread - the thread pointer * might get invalid after that point, if the thread exits quickly.