Add initial PG number to table. --- diff/drivers/md/dm-mpath.c 2005-01-12 19:17:54.000000000 +0000 +++ source/drivers/md/dm-mpath.c 2005-01-12 19:18:03.000000000 +0000 @@ -408,6 +408,7 @@ * <#multipath feature args> []* * <#hw_handler args> [hw_handler []*] * <#priority groups> + * * [ <#selector args> []* * <#paths> <#per-path selector args> * [ []* ]+ ]+ @@ -665,12 +666,14 @@ /* target parameters */ static struct param _params[] = { {1, 1024, ESTR("invalid number of priority groups")}, + {1, 1024, ESTR("invalid initial priority group number")}, }; int r; struct multipath *m; struct arg_set as; unsigned pg_count = 0; + unsigned next_pg_num; as.argc = argc; as.argv = argv; @@ -693,9 +696,14 @@ if (r) goto bad; + r = read_param(_params + 1, shift(&as), &next_pg_num, &ti->error); + if (r) + goto bad; + /* parse the priority groups */ while (as.argc) { struct priority_group *pg; + pg = parse_priority_group(&as, m, ti); if (!pg) { r = -EINVAL; @@ -705,6 +713,8 @@ m->nr_valid_paths += pg->nr_paths; list_add_tail(&pg->list, &m->priority_groups); pg_count++; + if (!--next_pg_num) + m->next_pg = pg; } if (pg_count != m->nr_priority_groups) {