Add helper functions for quiescing/resuming all devices on a given scsi host. Signed-off-by: Hannes Reinecke <hare@xxxxxxx> --- drivers/scsi/scsi_lib.c | 18 ++++++++++++++++++ include/scsi/scsi_device.h | 2 ++ 2 files changed, 20 insertions(+) diff --git a/drivers/scsi/scsi_lib.c b/drivers/scsi/scsi_lib.c index 2563b061f56b..771a8352d3e8 100644 --- a/drivers/scsi/scsi_lib.c +++ b/drivers/scsi/scsi_lib.c @@ -2630,6 +2630,24 @@ scsi_target_resume(struct scsi_target *starget) } EXPORT_SYMBOL(scsi_target_resume); +void scsi_host_quiesce(struct Scsi_Host *shost) +{ + struct scsi_device *sdev; + + shost_for_each_device(sdev, shost) + scsi_device_quiesce(sdev); +} +EXPORT_SYMBOL(scsi_host_quiesce); + +void scsi_host_resume(struct Scsi_Host *shost) +{ + struct scsi_device *sdev; + + shost_for_each_device(sdev, shost) + scsi_device_resume(sdev); +} +EXPORT_SYMBOL(scsi_host_resume); + /** * scsi_internal_device_block_nowait - try to transition to the SDEV_BLOCK state * @sdev: device to block diff --git a/include/scsi/scsi_device.h b/include/scsi/scsi_device.h index 3ed836db5306..2185068ce955 100644 --- a/include/scsi/scsi_device.h +++ b/include/scsi/scsi_device.h @@ -420,6 +420,8 @@ extern int scsi_device_quiesce(struct scsi_device *sdev); extern void scsi_device_resume(struct scsi_device *sdev); extern void scsi_target_quiesce(struct scsi_target *); extern void scsi_target_resume(struct scsi_target *); +extern void scsi_host_quiesce(struct Scsi_Host *); +extern void scsi_host_resume(struct Scsi_Host *); extern void scsi_scan_target(struct device *parent, unsigned int channel, unsigned int id, u64 lun, enum scsi_scan_mode rescan); -- 2.16.4