This patchset is a combination of my previous two patchsets [PATCH 0/5] multipath: Add a group_by_tgp path grouping policy [PATCH 0/5] priority and pathgroup switching changes The first part adds a new path grouping policy that can be used with ALUA devices. The goal is to avoid the temporary incorrect path groupings that can happen when paths change priorities. The second part is changes that mostly effect how multipathd handles switching or reordering pathgroups for devices where group_by_prio isn't set. Differences from V1 (from changes suggested by Martin Wilck): [05/11]: make detect_pgpolicy set group_by_prio instead of group_by_tpg [06/11]: New patch. Add detect_pgpolicy_use_tpg to pick group_by_tpg instead of group_by_prio [09/11]: Large rewrite of my "multipathd: refresh all priorities if one has changed" patch based on discussions with Martin [10/11]: This just moves path_groups_in_order() to multiapthd, and adds a comment explaining why it works different from select_path_group(). Benjamin Marzinski (11): libmultipath: add group_by_tpg path_grouping_policy libmultipath: don't copy pgpolicy string in get_pgpolicy_name libmultipath: add ALUA tpg path wildcard multipath-tools tests: add tests for group_by_tpg policy libmultipath: add "detect_pgpolicy" config option libmultipath: add "detect_pgpolicy_use_tpg" config option libmultipath: don't count PRIO_UNDEF paths for pathgroup priority multipath-tools tests: add tests to verify PRIO_UDEF changes multipathd: only refresh priorities in update_prio() multipathd: reload map if the path groups are out of order multipathd: don't assume mpp->paths will exist in need_switch_pathgroup libmultipath/config.c | 4 + libmultipath/config.h | 4 + libmultipath/configure.c | 2 + libmultipath/defaults.h | 2 + libmultipath/dict.c | 28 +++- libmultipath/discovery.c | 1 + libmultipath/hwtable.c | 2 + libmultipath/libmultipath.version | 10 +- libmultipath/pgpolicies.c | 42 +++--- libmultipath/pgpolicies.h | 6 +- libmultipath/print.c | 9 ++ libmultipath/prioritizers/alua.c | 1 + libmultipath/propsel.c | 69 ++++++++- libmultipath/propsel.h | 2 + libmultipath/structs.c | 1 + libmultipath/structs.h | 17 +++ libmultipath/switchgroup.c | 12 +- multipath/main.c | 1 + multipath/multipath.conf.5 | 29 ++++ multipathd/cli_handlers.c | 8 +- multipathd/fpin_handlers.c | 4 +- multipathd/main.c | 174 +++++++++++---------- multipathd/main.h | 3 +- tests/pgpolicy.c | 243 ++++++++++++++++++++++++++++++ 24 files changed, 547 insertions(+), 127 deletions(-) -- 2.17.2 -- dm-devel mailing list dm-devel@xxxxxxxxxx https://listman.redhat.com/mailman/listinfo/dm-devel