[dm-devel] [PATCH v4 0/3] scsi/dm: dm_blk_ioctl(): implement failover for SG_IO on dm-multipath
mwilck at suse.com
mwilck at suse.com
Mon Jun 28 09:52:07 UTC 2021
From: Martin Wilck <mwilck at suse.com>
Hello Mike, hello Martin,
here is v4 of my attempt to add retry logic to SG_IO on dm-multipath devices.
Regards
Martin
Changes v3->v4 (thanks to Mike Snitzer):
- Added an additional helper function sg_io_to_blk_status() to
scsi_ioctl.c, in order to avoid open-coding handling of the SCSI result
code in device-mapper.
- Added a new method dm_sg_io_ioctl_fn() in struct target_type, define
only by the multipath target. This allows moving the bulk of the new
code to dm-mpath.c, and avoids the wrong limitation of the code to
request-based multipath.
Changes v2->v3:
- un-inlined scsi_result_to_blk_status again, and move the helper
__scsi_result_to_blk_status to block/scsi_ioctl.c instead
(Bart v. Assche)
- open-coded the status/msg/host/driver-byte -> result conversion
where the standard SCSI helpers aren't usable (Bart v. Assche)
Changes v1->v2:
- applied modifications from Mike Snitzer
- moved SG_IO dependent code to a separate file, no scsi includes in
dm.c any more
- made the new code depend on a configuration option
- separated out scsi changes, made scsi_result_to_blk_status()
inline to avoid dependency of dm_mod from scsi_mod (Paolo Bonzini)
Martin Wilck (3):
scsi: scsi_ioctl: export __scsi_result_to_blk_status()
scsi: scsi_ioctl: add sg_io_to_blk_status()
dm mpath: add CONFIG_DM_MULTIPATH_SG_IO - failover for SG_IO
block/scsi_ioctl.c | 72 ++++++++++++++++++++++-
drivers/md/Kconfig | 11 ++++
drivers/md/dm-core.h | 5 ++
drivers/md/dm-mpath.c | 105 ++++++++++++++++++++++++++++++++++
drivers/md/dm.c | 26 ++++++++-
drivers/scsi/scsi_lib.c | 24 +-------
include/linux/blkdev.h | 4 ++
include/linux/device-mapper.h | 8 ++-
8 files changed, 226 insertions(+), 29 deletions(-)
--
2.32.0
More information about the dm-devel
mailing list