This series adds basic ALUA support for native SCSI multipath. Only support to send a one-time RTPG is added to get per-path information.
I want to add more ALUA support, for things like ALUA configuration from device rescan. The DH-based ALUA code already supports this. However separating the DH ALUA port group management code from the rest of the DH code is difficult, so I am looking for suggestions on this. There is a consensus to not reuse the device handler code, but it is intertwined with the ALUA driver code in scsi_dh_alua.c An initial framework is also added to send a periodic TUR per path, to keep path information up-to-date. This series is based on https://lore.kernel.org/linux-scsi/[email protected]/T/#m76b3a2756124e13b5564c434a38f9c51f64f0bbc and may be found at https://github.com/johnpgarry/linux/tree/scsi-multipath-pre-7.0-upstream-alua John Garry (8): libmultipath: add mpath_call_for_all_devices() scsi: scsi_dh_alua: Do not attach for SCSI native multipath scsi: scsi_dh_alua: Pass submit_rtpg() a bool for extended header support scsi: Create a core ALUA driver scsi: scsi-multipath: Add basic ALUA support scsi: scsi-multipath: Maintain sdev->access_state scsi: scsi-multipath: Issue a periodic TUR per path scsi: scsi-multipath: Add stubbed scsi_multipath_dev_rescan() drivers/scsi/Kconfig | 9 + drivers/scsi/Makefile | 1 + drivers/scsi/device_handler/Kconfig | 1 + drivers/scsi/device_handler/scsi_dh_alua.c | 202 +------------------- drivers/scsi/scsi_alua.c | 204 ++++++++++++++++++++ drivers/scsi/scsi_multipath.c | 206 ++++++++++++++++++++- drivers/scsi/scsi_scan.c | 2 + drivers/scsi/scsi_sysfs.c | 2 +- include/linux/multipath.h | 2 + include/scsi/scsi_alua.h | 50 +++++ include/scsi/scsi_multipath.h | 8 + lib/multipath.c | 15 ++ 12 files changed, 501 insertions(+), 201 deletions(-) create mode 100644 drivers/scsi/scsi_alua.c create mode 100644 include/scsi/scsi_alua.h -- 2.43.5

