X-Git-Url: http://pileus.org/git/?a=blobdiff_plain;f=kernel%2Fexit.c;h=2eaf68b634e3b592726b5176188cc6186cbc6b27;hb=d5b7c78e975302a1bab28263266c39ecb71acad4;hp=f7864ac2ecc1ad54c0af6b06b6f9d2da4a93f1ac;hpb=dede17b8e931eeaa38b0288e8d545d558d904942;p=~andy%2Flinux diff --git a/kernel/exit.c b/kernel/exit.c index f7864ac2ecc..2eaf68b634e 100644 --- a/kernel/exit.c +++ b/kernel/exit.c @@ -91,6 +91,8 @@ static void __exit_signal(struct task_struct *tsk) if (atomic_dec_and_test(&sig->count)) posix_cpu_timers_exit_group(tsk); else { + cputime_t utime, stime; + /* * If there is any task waiting for the group exit * then notify it: @@ -110,9 +112,10 @@ static void __exit_signal(struct task_struct *tsk) * We won't ever get here for the group leader, since it * will have been the last reference on the signal_struct. */ - sig->utime = cputime_add(sig->utime, task_utime(tsk)); - sig->stime = cputime_add(sig->stime, task_stime(tsk)); - sig->gtime = cputime_add(sig->gtime, task_gtime(tsk)); + task_times(tsk, &utime, &stime); + sig->utime = cputime_add(sig->utime, utime); + sig->stime = cputime_add(sig->stime, stime); + sig->gtime = cputime_add(sig->gtime, tsk->gtime); sig->min_flt += tsk->min_flt; sig->maj_flt += tsk->maj_flt; sig->nvcsw += tsk->nvcsw;