Skip to contentSkip to conversation

sys_ioprio_set: minor do_each_thread+break fix

PATCH In review Oleg Nesterov 2 participants 2 messages Aug 20, 2006 – Aug 21, 2006 VFS

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 sys_ioprio_set: minor do_each_thread+break fix

Quoted 1 line

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.
	 */
fs/ioprio.c renamed from fs/ioprio.c~2_break +2 -2
@@ -111,9 +111,9 @@ asmlinkage long sys_ioprio_set(int which
 					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;
#1 lore raw
Quoted 12 lines · Oleg Nesterov

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.
	 */
fs/ioprio.c renamed from fs/ioprio.c~2_break +0 -0
@@ -111,9 +111,9 @@ asmlinkage long sys_ioprio_set(int which
 					continue;

fs/ioprio.c asmlinkage long sys_ioprio_set(int which · line 119

Quoted 10 lines
fs/ioprio.c renamed from fs/ioprio.c~2_break +2 -2
 				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;

Good catch, applied!

Signature · 1 line
Jens Axboe