multipathd: use 0 for initial pg if there are no priority groups
PATCH 1/1 multipathd: use 0 for initial pg if there are no priority groups
dm-multipath now accommodates a DM table that doesn't have any priority groups, see: http://git.kernel.org/linus/a490a07a67b7a37
That kernel change imposes that multipathd must pass 0 for the initial priority group if there aren't any priority groups (currently passes 1).
There is no need to check the multipath target version to decide whether to pass an initial_pg of 0 or 1 because until recently dm-multipath never accommodated a DM table with no priority groups.
--- libmultipath/dmparser.c | 6 +++++- 1 files changed, 5 insertions(+), 1 deletions(-)
libmultipath/dmparser.c +5 -1
@@ -52,6 +52,7 @@ assemble_map (struct multipath * mp)int i, j;int shift, freechar;int minio; +int nr_priority_groups, initial_pg_nr;char * p;struct pathgroup * pgp;struct path * pp;
@@ -60,9 +61,12 @@ assemble_map (struct multipath * mp) p = mp->params; freechar =sizeof (mp->params); + nr_priority_groups =VECTOR_SIZE (mp->pg); + initial_pg_nr = (nr_priority_groups ? mp->bestpg :0 ); + shift =snprintf (p, freechar,"%s %s %i %i" , mp->features, mp->hwhandler, -VECTOR_SIZE (mp->pg), mp->bestpg); + nr_priority_groups, initial_pg_nr);if (shift >= freechar) {fprintf (stderr,"mp->params too small\n" );
Signature · 1 line
1.7.3.4
Christophe Varoqui
AppliedQuoted 10 lines · Mike Snitzer
dm-multipath now accommodates a DM table that doesn't have any priority groups, see: http://git.kernel.org/linus/a490a07a67b7a37
That kernel change imposes that multipathd must pass 0 for the initial priority group if there aren't any priority groups (currently passes 1).
There is no need to check the multipath target version to decide whether to pass an
initial_pgof 0 or 1 because until recently dm-multipath never accommodated a DM table with no priority groups.
Applied.
Signature · 3 lines
Christophe Varoqui OpenSVC - Software to scale http://www.opensvc.com/