diff options
Diffstat (limited to 'kernel/delayacct.c')
| -rw-r--r-- | kernel/delayacct.c | 7 | 
1 files changed, 5 insertions, 2 deletions
diff --git a/kernel/delayacct.c b/kernel/delayacct.c index 418b3f7053a..d473988c1d0 100644 --- a/kernel/delayacct.c +++ b/kernel/delayacct.c @@ -106,6 +106,7 @@ int __delayacct_add_tsk(struct taskstats *d, struct task_struct *tsk)  	unsigned long long t2, t3;  	unsigned long flags;  	struct timespec ts; +	cputime_t utime, stime, stimescaled, utimescaled;  	/* Though tsk->delays accessed later, early exit avoids  	 * unnecessary returning of other data @@ -114,12 +115,14 @@ int __delayacct_add_tsk(struct taskstats *d, struct task_struct *tsk)  		goto done;  	tmp = (s64)d->cpu_run_real_total; -	cputime_to_timespec(tsk->utime + tsk->stime, &ts); +	task_cputime(tsk, &utime, &stime); +	cputime_to_timespec(utime + stime, &ts);  	tmp += timespec_to_ns(&ts);  	d->cpu_run_real_total = (tmp < (s64)d->cpu_run_real_total) ? 0 : tmp;  	tmp = (s64)d->cpu_scaled_run_real_total; -	cputime_to_timespec(tsk->utimescaled + tsk->stimescaled, &ts); +	task_cputime_scaled(tsk, &utimescaled, &stimescaled); +	cputime_to_timespec(utimescaled + stimescaled, &ts);  	tmp += timespec_to_ns(&ts);  	d->cpu_scaled_run_real_total =  		(tmp < (s64)d->cpu_scaled_run_real_total) ? 0 : tmp;  |