diff options
Diffstat (limited to 'kernel/exit.c')
-rw-r--r-- | kernel/exit.c | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/kernel/exit.c b/kernel/exit.c index b4df21937216..7dd20408707c 100644 --- a/kernel/exit.c +++ b/kernel/exit.c | |||
@@ -85,6 +85,7 @@ static void __exit_signal(struct task_struct *tsk) | |||
85 | bool group_dead = thread_group_leader(tsk); | 85 | bool group_dead = thread_group_leader(tsk); |
86 | struct sighand_struct *sighand; | 86 | struct sighand_struct *sighand; |
87 | struct tty_struct *uninitialized_var(tty); | 87 | struct tty_struct *uninitialized_var(tty); |
88 | cputime_t utime, stime; | ||
88 | 89 | ||
89 | sighand = rcu_dereference_check(tsk->sighand, | 90 | sighand = rcu_dereference_check(tsk->sighand, |
90 | lockdep_tasklist_lock_is_held()); | 91 | lockdep_tasklist_lock_is_held()); |
@@ -123,9 +124,10 @@ static void __exit_signal(struct task_struct *tsk) | |||
123 | * We won't ever get here for the group leader, since it | 124 | * We won't ever get here for the group leader, since it |
124 | * will have been the last reference on the signal_struct. | 125 | * will have been the last reference on the signal_struct. |
125 | */ | 126 | */ |
126 | sig->utime += tsk->utime; | 127 | task_cputime(tsk, &utime, &stime); |
127 | sig->stime += tsk->stime; | 128 | sig->utime += utime; |
128 | sig->gtime += tsk->gtime; | 129 | sig->stime += stime; |
130 | sig->gtime += task_gtime(tsk); | ||
129 | sig->min_flt += tsk->min_flt; | 131 | sig->min_flt += tsk->min_flt; |
130 | sig->maj_flt += tsk->maj_flt; | 132 | sig->maj_flt += tsk->maj_flt; |
131 | sig->nvcsw += tsk->nvcsw; | 133 | sig->nvcsw += tsk->nvcsw; |
@@ -1092,7 +1094,7 @@ static int wait_task_zombie(struct wait_opts *wo, struct task_struct *p) | |||
1092 | sig = p->signal; | 1094 | sig = p->signal; |
1093 | psig->cutime += tgutime + sig->cutime; | 1095 | psig->cutime += tgutime + sig->cutime; |
1094 | psig->cstime += tgstime + sig->cstime; | 1096 | psig->cstime += tgstime + sig->cstime; |
1095 | psig->cgtime += p->gtime + sig->gtime + sig->cgtime; | 1097 | psig->cgtime += task_gtime(p) + sig->gtime + sig->cgtime; |
1096 | psig->cmin_flt += | 1098 | psig->cmin_flt += |
1097 | p->min_flt + sig->min_flt + sig->cmin_flt; | 1099 | p->min_flt + sig->min_flt + sig->cmin_flt; |
1098 | psig->cmaj_flt += | 1100 | psig->cmaj_flt += |