scsi: core: Show nr_hw_queues in sysfs
authorJohn Garry <john.garry@huawei.com>
Wed, 19 Aug 2020 15:20:31 +0000 (23:20 +0800)
committerJens Axboe <axboe@kernel.dk>
Tue, 6 Oct 2020 14:33:44 +0000 (08:33 -0600)
So that we don't use a value of 0 for when Scsi_Host.nr_hw_queues is unset,
use the tag_set->nr_hw_queues (which holds 1 for this case).

Signed-off-by: John Garry <john.garry@huawei.com>
Tested-by: Douglas Gilbert <dgilbert@interlog.com>
Acked-by: Martin K. Petersen <martin.petersen@oracle.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
drivers/scsi/scsi_sysfs.c

index 163dbcb741c1c7d43819cecf33a28ef45df37604..d6e344fa33ad90544d9d9ca588fe3ccbf72d9fcc 100644 (file)
@@ -393,6 +393,16 @@ show_use_blk_mq(struct device *dev, struct device_attribute *attr, char *buf)
 }
 static DEVICE_ATTR(use_blk_mq, S_IRUGO, show_use_blk_mq, NULL);
 
+static ssize_t
+show_nr_hw_queues(struct device *dev, struct device_attribute *attr, char *buf)
+{
+       struct Scsi_Host *shost = class_to_shost(dev);
+       struct blk_mq_tag_set *tag_set = &shost->tag_set;
+
+       return snprintf(buf, 20, "%d\n", tag_set->nr_hw_queues);
+}
+static DEVICE_ATTR(nr_hw_queues, S_IRUGO, show_nr_hw_queues, NULL);
+
 static struct attribute *scsi_sysfs_shost_attrs[] = {
        &dev_attr_use_blk_mq.attr,
        &dev_attr_unique_id.attr,
@@ -411,6 +421,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_nr_hw_queues.attr,
        NULL
 };