scsi: remove an extra queue reference
authorChristoph Hellwig <hch@lst.de>
Tue, 18 Oct 2022 13:57:18 +0000 (15:57 +0200)
committerJens Axboe <axboe@kernel.dk>
Tue, 25 Oct 2022 14:25:35 +0000 (08:25 -0600)
Now that blk_mq_destroy_queue does not release the queue reference, there
is no need for a second queue reference to be held by the scsi_device.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Sagi Grimberg <sagi@grimberg.me>
Reviewed-by: Chaitanya Kulkarni <kch@nvidia.com>
Reviewed-by: Keith Busch <kbusch@kernel.org>
Link: https://lore.kernel.org/r/20221018135720.670094-3-hch@lst.de
Signed-off-by: Jens Axboe <axboe@kernel.dk>
drivers/scsi/scsi_scan.c
drivers/scsi/scsi_sysfs.c

index 5d27f51..0a95fa7 100644 (file)
@@ -344,7 +344,6 @@ static struct scsi_device *scsi_alloc_sdev(struct scsi_target *starget,
        sdev->request_queue = q;
        q->queuedata = sdev;
        __scsi_init_queue(sdev->host, q);
-       WARN_ON_ONCE(!blk_get_queue(q));
 
        depth = sdev->host->cmd_per_lun ?: 1;
 
index 579be9f..cac7c90 100644 (file)
@@ -1486,7 +1486,6 @@ void __scsi_remove_device(struct scsi_device *sdev)
        mutex_unlock(&sdev->state_mutex);
 
        blk_mq_destroy_queue(sdev->request_queue);
-       blk_put_queue(sdev->request_queue);
        kref_put(&sdev->host->tagset_refcnt, scsi_mq_free_tags);
        cancel_work_sync(&sdev->requeue_work);