This patchset has a couple of different pieces, but that main part is fixing the issue where, if a path is added while offline (for instance by doing a "multipath reconfigure" while the path is offline) It won't be able to get the SCSI device serial number (or its ALUA target port group). This meant that the GROUP_BY_SERIAL and GROUP_BY_TPG path grouping policies would not group the path correctly, even once it came back online. Patches 1 & 2 are just a fix on top of Martin's recent device reloading work. Patches 3, 4, & 5 are changes to need_reload. They avoid setting and checking it in cases where it won't change how multipathd behaves. The side benefit of doing this work is that it's easier to reason about what setting need_reload can and can't effect. Specifically, it will now only cause multipathd to fix incorrect device tables while in checker_finished(). Patches 6 - 11 deal with the serial and tpg_id problem from issue #108 Patch 12 is shutting up a static analyzer warning that popped up on a recent rhel build. Patch 13 is a fix for an issue I ran into while testing this set. Benjamin Marzinski (13): multipathd: use symbolic values for wait_for_udev multipathd: don't reload the map when waiting for udev libmultipath: don't set need_reload in adopt_paths libmultipath: remove need_reload check from select_action libmultipath: drop return value from update_pathvec_from_dm libmultipath: Dont scan pointless sysfs parents libmultipath: move sysfs checks out of scsi_ioctl_pathinfo libmultipath: rename DI_SERIAL to DI_IOCTL libmultipath: retry DI_IOCTL functions if they were skipped libmultipath: set need_reload when pp->serial gets set libmultipath: set need_reload when the tpg_id gets set libmultipath: stop static analyzer complaint in init_foreign libmultipath: be lenient in allowing the alua-based pgpolicies libmultipath/configure.c | 4 +- libmultipath/devmapper.c | 22 +++++--- libmultipath/discovery.c | 104 ++++++++++++++++--------------------- libmultipath/discovery.h | 7 ++- libmultipath/foreign.c | 2 +- libmultipath/propsel.c | 6 ++- libmultipath/structs.h | 15 +++++- libmultipath/structs_vec.c | 10 ++-- multipath/main.c | 2 +- multipathd/cli_handlers.c | 16 +++--- multipathd/main.c | 40 +++++++------- tests/test-lib.c | 9 +--- 12 files changed, 119 insertions(+), 118 deletions(-) -- 2.46.2