Tidy bypass_pg_num
--- diff/drivers/md/dm-mpath.c	2004-11-10 15:12:11.000000000 +0000
+++ source/drivers/md/dm-mpath.c	2004-11-10 15:12:17.000000000 +0000
@@ -807,21 +807,19 @@
 	struct priority_group *pg;
 	unsigned pgnum;
 
-	if (!pgstr || (sscanf(pgstr, "%u", &pgnum) != 1) || !pgnum)
-		goto error;
+	if (!pgstr || (sscanf(pgstr, "%u", &pgnum) != 1) || !pgnum ||
+	    (pgnum > m->nr_priority_groups)) {
+		DMWARN("invalid PG number supplied to bypass_pg");
+		return -EINVAL;
+	}
 
 	list_for_each_entry(pg, &m->priority_groups, list) {
-		if (--pgnum)
-			continue;
-
-		bypass_pg(m, pg, bypassed);
-
-		return 0;
+		if (!--pgnum)
+			break;
 	}
 
-error:
-	DMWARN("invalid PG number supplied to bypass_pg");
-	return -EINVAL;
+	bypass_pg(m, pg, bypassed);
+	return 0;
 }
 
 /*
