[PATCH] sys_ioprio_set: minor do_each_thread+break fix
Oleg Nesterov [Mon, 21 Aug 2006 06:33:23 +0000 (08:33 +0200)]
From include/linux/sched.h:

         * Careful: do_each_thread/while_each_thread is a double loop so
         *          'break' will not work as expected - use goto instead.
         */

Signed-off-by: Oleg Nesterov <oleg@tv-sign.ru>
Signed-off-by: Jens Axboe <axboe@suse.de>

fs/ioprio.c

index 93aa571..3db3103 100644 (file)
@@ -111,9 +111,9 @@ asmlinkage long sys_ioprio_set(int which, int who, int ioprio)
                                        continue;
                                ret = set_task_ioprio(p, ioprio);
                                if (ret)
-                                       break;
+                                       goto free_uid;
                        } while_each_thread(g, p);
-
+free_uid:
                        if (who)
                                free_uid(user);
                        break;