diff options
Diffstat (limited to 'kernel')
-rw-r--r-- | kernel/acct.c | 16 |
1 files changed, 9 insertions, 7 deletions
diff --git a/kernel/acct.c b/kernel/acct.c index 6312d6bd43e3..38d57fa6b78f 100644 --- a/kernel/acct.c +++ b/kernel/acct.c | |||
@@ -427,6 +427,7 @@ static void do_acct_process(long exitcode, struct file *file) | |||
427 | u64 elapsed; | 427 | u64 elapsed; |
428 | u64 run_time; | 428 | u64 run_time; |
429 | struct timespec uptime; | 429 | struct timespec uptime; |
430 | unsigned long jiffies; | ||
430 | 431 | ||
431 | /* | 432 | /* |
432 | * First check to see if there is enough free_space to continue | 433 | * First check to see if there is enough free_space to continue |
@@ -467,12 +468,12 @@ static void do_acct_process(long exitcode, struct file *file) | |||
467 | #endif | 468 | #endif |
468 | do_div(elapsed, AHZ); | 469 | do_div(elapsed, AHZ); |
469 | ac.ac_btime = xtime.tv_sec - elapsed; | 470 | ac.ac_btime = xtime.tv_sec - elapsed; |
470 | ac.ac_utime = encode_comp_t(jiffies_to_AHZ( | 471 | jiffies = cputime_to_jiffies(cputime_add(current->group_leader->utime, |
471 | current->signal->utime + | 472 | current->signal->utime)); |
472 | current->group_leader->utime)); | 473 | ac.ac_utime = encode_comp_t(jiffies_to_AHZ(jiffies)); |
473 | ac.ac_stime = encode_comp_t(jiffies_to_AHZ( | 474 | jiffies = cputime_to_jiffies(cputime_add(current->group_leader->stime, |
474 | current->signal->stime + | 475 | current->signal->stime)); |
475 | current->group_leader->stime)); | 476 | ac.ac_stime = encode_comp_t(jiffies_to_AHZ(jiffies)); |
476 | /* we really need to bite the bullet and change layout */ | 477 | /* we really need to bite the bullet and change layout */ |
477 | ac.ac_uid = current->uid; | 478 | ac.ac_uid = current->uid; |
478 | ac.ac_gid = current->gid; | 479 | ac.ac_gid = current->gid; |
@@ -580,7 +581,8 @@ void acct_process(long exitcode) | |||
580 | void acct_update_integrals(struct task_struct *tsk) | 581 | void acct_update_integrals(struct task_struct *tsk) |
581 | { | 582 | { |
582 | if (likely(tsk->mm)) { | 583 | if (likely(tsk->mm)) { |
583 | long delta = tsk->stime - tsk->acct_stimexpd; | 584 | long delta = |
585 | cputime_to_jiffies(tsk->stime) - tsk->acct_stimexpd; | ||
584 | 586 | ||
585 | if (delta == 0) | 587 | if (delta == 0) |
586 | return; | 588 | return; |