This patch adds an shost attribute, max_device_queue_depth, that will cycle through all devices on the shost and change their current and max queue depth to the new value. Signed-off-by: James Smart <jsmart2021@xxxxxxxxx> --- drivers/scsi/scsi_sysfs.c | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/drivers/scsi/scsi_sysfs.c b/drivers/scsi/scsi_sysfs.c index 954f68b002cb..85dab4867eed 100644 --- a/drivers/scsi/scsi_sysfs.c +++ b/drivers/scsi/scsi_sysfs.c @@ -368,6 +368,23 @@ store_shost_eh_deadline(struct device *dev, struct device_attribute *attr, static DEVICE_ATTR(eh_deadline, S_IRUGO | S_IWUSR, show_shost_eh_deadline, store_shost_eh_deadline); +static ssize_t +store_host_max_device_queue_depth(struct device *dev, + struct device_attribute *attr, const char *buf, size_t count) +{ + struct Scsi_Host *shost = class_to_shost(dev); + int depth, retval; + + depth = simple_strtoul(buf, NULL, 0); + + retval = shost_change_max_queue_depths(shost, depth); + + return (retval < 0) ? retval : count; +} + +static DEVICE_ATTR(max_device_queue_depth, S_IWUSR, NULL, + store_host_max_device_queue_depth); + shost_rd_attr(unique_id, "%u\n"); shost_rd_attr(cmd_per_lun, "%hd\n"); shost_rd_attr(can_queue, "%hd\n"); @@ -411,6 +428,7 @@ static struct attribute *scsi_sysfs_shost_attrs[] = { &dev_attr_prot_guard_type.attr, &dev_attr_host_reset.attr, &dev_attr_eh_deadline.attr, + &dev_attr_max_device_queue_depth.attr, NULL }; -- 2.13.7