]> git.kernelconcepts.de Git - karo-tx-linux.git/blobdiff - kernel/tsacct.c
NFSv4: The link() operation should return any delegation on the file
[karo-tx-linux.git] / kernel / tsacct.c
index 8ebcd8532dfb33f80518feb2fc7e1cad1314bc31..5275fbae67652fee26adf41fd958d4b8fa3f62ee 100644 (file)
@@ -120,8 +120,10 @@ void acct_update_integrals(struct task_struct *tsk)
        if (likely(tsk->mm)) {
                cputime_t time, dtime;
                struct timeval value;
+               unsigned long flags;
                u64 delta;
 
+               local_irq_save(flags);
                time = tsk->stime + tsk->utime;
                dtime = cputime_sub(time, tsk->acct_timexpd);
                jiffies_to_timeval(cputime_to_jiffies(dtime), &value);
@@ -129,10 +131,12 @@ void acct_update_integrals(struct task_struct *tsk)
                delta = delta * USEC_PER_SEC + value.tv_usec;
 
                if (delta == 0)
-                       return;
+                       goto out;
                tsk->acct_timexpd = time;
                tsk->acct_rss_mem1 += delta * get_mm_rss(tsk->mm);
                tsk->acct_vm_mem1 += delta * tsk->mm->total_vm;
+       out:
+               local_irq_restore(flags);
        }
 }