[PATCH 0/8] scsi-multipath: Basic ALUA support

From: John Garry

Date: Tue Mar 10 2026 - 07:53:59 EST


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/20260225153627.1032500-1-john.g.garry@xxxxxxxxxx/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