Following on the back of the ALUA support for native SCSI multipath proposal at [0], this is an attempt to move to a SCSI core ALUA driver.
Essentially this series move the bulk of the ALUA handling from scsi_dh_alua.c to a core driver. We still need to support ALUA for DH, so the scsi_dh_alua.c is still responsible for driving ALUA support and the SCSI core ALUA driver just provides a set of library functions for that. The SCSI core ALUA driver also provides implicit ALUA support for no DH, like when we would be native SCSI multipath. This series is just really an RFC quality work and its purpose is to decide on the direction of ALUA support for native SCSI multipath. I think that this work is a real regression possibility for dm-multipath, so we need to be careful. [0] https://lore.kernel.org/linux-scsi/[email protected]/T/#m9c054433076812dff464d0e3b50a00620cfe0af1 John Garry (13): scsi: scsi_dh_alua: Delete alua_port_group scsi: alua: Create a core ALUA driver scsi: alua: Add scsi_alua_rtpg() scsi: alua: Add scsi_alua_stpg() scsi: alua: Add scsi_alua_tur() scsi: alua: Add scsi_alua_rtpg_run() scsi: alua: Add scsi_alua_stpg_run() scsi: alua: Add scsi_alua_check_tpgs() scsi: alua: Add scsi_alua_handle_state_transition() scsi: alua: Add scsi_alua_prep_fn() scsi: alua: Add scsi_device_alua_implicit() scsi: scsi_dh_alua: Switch to use core support scsi: core: Add implicit ALUA support drivers/scsi/Kconfig | 10 +- drivers/scsi/Makefile | 1 + drivers/scsi/device_handler/Kconfig | 1 + drivers/scsi/device_handler/scsi_dh_alua.c | 1003 ++------------------ drivers/scsi/scsi.c | 7 + drivers/scsi/scsi_alua.c | 748 +++++++++++++++ drivers/scsi/scsi_error.c | 7 + drivers/scsi/scsi_lib.c | 7 + drivers/scsi/scsi_scan.c | 6 + drivers/scsi/scsi_sysfs.c | 7 +- include/scsi/scsi_alua.h | 103 ++ include/scsi/scsi_device.h | 1 + 12 files changed, 977 insertions(+), 924 deletions(-) create mode 100644 drivers/scsi/scsi_alua.c create mode 100644 include/scsi/scsi_alua.h -- 2.43.5

