]> err.no Git - linux-2.6/blobdiff - kernel/fork.c
Merge branch 'fixes-davem' of git://git.kernel.org/pub/scm/linux/kernel/git/linville...
[linux-2.6] / kernel / fork.c
index a65bfc47177ce7e6c3f6bc68fa7a3b3e1a70dbf2..8ca1a14cdc8c12ee8e592f7913f07f22dcec3d9b 100644 (file)
@@ -1057,6 +1057,7 @@ static struct task_struct *copy_process(unsigned long clone_flags,
        p->utimescaled = cputime_zero;
        p->stimescaled = cputime_zero;
        p->prev_utime = cputime_zero;
+       p->prev_stime = cputime_zero;
 
 #ifdef CONFIG_TASK_XACCT
        p->rchar = 0;           /* I/O counter: bytes read */
@@ -1122,6 +1123,9 @@ static struct task_struct *copy_process(unsigned long clone_flags,
        p->blocked_on = NULL; /* not blocked yet */
 #endif
 
+       /* Perform scheduler related setup. Assign this task to a CPU. */
+       sched_fork(p, clone_flags);
+
        if ((retval = security_task_alloc(p)))
                goto bad_fork_cleanup_policy;
        if ((retval = audit_alloc(p)))
@@ -1211,9 +1215,6 @@ static struct task_struct *copy_process(unsigned long clone_flags,
        INIT_LIST_HEAD(&p->ptrace_children);
        INIT_LIST_HEAD(&p->ptrace_list);
 
-       /* Perform scheduler related setup. Assign this task to a CPU. */
-       sched_fork(p, clone_flags);
-
        /* Now that the task is set up, run cgroup callbacks if
         * necessary. We need to run them before the task is visible
         * on the tasklist. */