scsi: core: Pass sdev to blk_mq_alloc_queue()
When calling scsi_alloc_sdev() -> blk_mq_alloc_queue(), we don't pass the sdev as the queuedata, but rather manually set it afterwards. Just pass to blk_mq_alloc_queue() to have automatically set. Signed-off-by: John Garry <john.g.garry@oracle.com> Link: https://lore.kernel.org/r/20240524084829.2132555-2-john.g.garry@oracle.com Reviewed-by: Christoph Hellwig <hch@lst.de> Reviewed-by: Hannes Reinecke <hare@suse.de> Tested-by: Himanshu Madhani <himanshu.madhani@oracle.com> Reviewed-by: Himanshu Madhani <himanshu.madhani@oracle.com> Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
This commit is contained in:
parent
1613e604df
commit
e7c09df178
@ -334,7 +334,7 @@ static struct scsi_device *scsi_alloc_sdev(struct scsi_target *starget,
|
|||||||
sdev->sg_reserved_size = INT_MAX;
|
sdev->sg_reserved_size = INT_MAX;
|
||||||
|
|
||||||
scsi_init_limits(shost, &lim);
|
scsi_init_limits(shost, &lim);
|
||||||
q = blk_mq_alloc_queue(&sdev->host->tag_set, &lim, NULL);
|
q = blk_mq_alloc_queue(&sdev->host->tag_set, &lim, sdev);
|
||||||
if (IS_ERR(q)) {
|
if (IS_ERR(q)) {
|
||||||
/* release fn is set up in scsi_sysfs_device_initialise, so
|
/* release fn is set up in scsi_sysfs_device_initialise, so
|
||||||
* have to free and put manually here */
|
* have to free and put manually here */
|
||||||
@ -344,7 +344,6 @@ static struct scsi_device *scsi_alloc_sdev(struct scsi_target *starget,
|
|||||||
}
|
}
|
||||||
kref_get(&sdev->host->tagset_refcnt);
|
kref_get(&sdev->host->tagset_refcnt);
|
||||||
sdev->request_queue = q;
|
sdev->request_queue = q;
|
||||||
q->queuedata = sdev;
|
|
||||||
|
|
||||||
depth = sdev->host->cmd_per_lun ?: 1;
|
depth = sdev->host->cmd_per_lun ?: 1;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user