diff options
Diffstat (limited to 'fs/proc/array.c')
| -rw-r--r-- | fs/proc/array.c | 10 | 
1 files changed, 6 insertions, 4 deletions
| diff --git a/fs/proc/array.c b/fs/proc/array.c index ff08a8957552..45ba91863808 100644 --- a/fs/proc/array.c +++ b/fs/proc/array.c @@ -511,7 +511,7 @@ static int do_task_stat(struct seq_file *m, struct pid_namespace *ns,  	sigemptyset(&sigign);  	sigemptyset(&sigcatch); -	cutime = cstime = utime = stime = 0; +	cutime = cstime = 0;  	cgtime = gtime = 0;  	if (lock_task_sighand(task, &flags)) { @@ -546,7 +546,6 @@ static int do_task_stat(struct seq_file *m, struct pid_namespace *ns,  			min_flt += sig->min_flt;  			maj_flt += sig->maj_flt; -			thread_group_cputime_adjusted(task, &utime, &stime);  			gtime += sig->gtime;  			if (sig->flags & (SIGNAL_GROUP_EXIT | SIGNAL_STOP_STOPPED)) @@ -562,10 +561,13 @@ static int do_task_stat(struct seq_file *m, struct pid_namespace *ns,  	if (permitted && (!whole || num_threads < 2))  		wchan = !task_is_running(task); -	if (!whole) { + +	if (whole) { +		thread_group_cputime_adjusted(task, &utime, &stime); +	} else { +		task_cputime_adjusted(task, &utime, &stime);  		min_flt = task->min_flt;  		maj_flt = task->maj_flt; -		task_cputime_adjusted(task, &utime, &stime);  		gtime = task_gtime(task);  	} | 
