]> err.no Git - linux-2.6/commitdiff
[PATCH] make taskstats sending completely independent of delay accounting on/off...
authorShailabh Nagar <nagar@watson.ibm.com>
Sun, 30 Jul 2006 10:03:10 +0000 (03:03 -0700)
committerLinus Torvalds <torvalds@g5.osdl.org>
Mon, 31 Jul 2006 20:28:37 +0000 (13:28 -0700)
Complete the separation of delay accounting and taskstats by ignoring the
return value of delay accounting functions that fill in parts of taskstats
before it is sent out (either in response to a command or as part of a task
exit).

Also make delayacct_add_tsk return silently when delay accounting is turned
off rather than treat it as an error.

Signed-off-by: Shailabh Nagar <nagar@watson.ibm.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
include/linux/delayacct.h
kernel/taskstats.c

index 7e8b6011b8f3e0c5b7b0ff6ab459a4aa158ab64b..8a284cc6fd5ffd810c2f58bfd17c66e7b6e5db1f 100644 (file)
@@ -80,9 +80,7 @@ static inline void delayacct_blkio_end(void)
 static inline int delayacct_add_tsk(struct taskstats *d,
                                        struct task_struct *tsk)
 {
-       if (likely(!delayacct_on))
-               return -EINVAL;
-       if (!tsk->delays)
+       if (likely(!delayacct_on) || !tsk->delays)
                return 0;
        return __delayacct_add_tsk(d, tsk);
 }
index f45179ce028e9a4370ac3227c59614999a393feb..b4c737a114085d1faa912c104ea6830d6e0ec3b7 100644 (file)
@@ -177,7 +177,7 @@ static int send_cpu_listeners(struct sk_buff *skb, unsigned int cpu)
 static int fill_pid(pid_t pid, struct task_struct *pidtsk,
                struct taskstats *stats)
 {
-       int rc;
+       int rc = 0;
        struct task_struct *tsk = pidtsk;
 
        if (!pidtsk) {
@@ -196,12 +196,10 @@ static int fill_pid(pid_t pid, struct task_struct *pidtsk,
         * Each accounting subsystem adds calls to its functions to
         * fill in relevant parts of struct taskstsats as follows
         *
-        *      rc = per-task-foo(stats, tsk);
-        *      if (rc)
-        *              goto err;
+        *      per-task-foo(stats, tsk);
         */
 
-       rc = delayacct_add_tsk(stats, tsk);
+       delayacct_add_tsk(stats, tsk);
        stats->version = TASKSTATS_VERSION;
 
        /* Define err: label here if needed */