Commit 3dc985bf authored by Wenchao Hao's avatar Wenchao Hao Committed by Martin K. Petersen

scsi: core: Clean up scsi_dev_queue_ready()

This is just a cleanup for scsi_dev_queue_ready() to avoid a redundant goto
and if statement. No functional change.
Signed-off-by: default avatarWenchao Hao <haowenchao2@huawei.com>
Link: https://lore.kernel.org/r/20231018113746.1940197-2-haowenchao2@huawei.comReviewed-by: default avatarBart Van Assche <bvanassche@acm.org>
Signed-off-by: default avatarMartin K. Petersen <martin.petersen@oracle.com>
parent 0b1b4b04
...@@ -1251,28 +1251,26 @@ static inline int scsi_dev_queue_ready(struct request_queue *q, ...@@ -1251,28 +1251,26 @@ static inline int scsi_dev_queue_ready(struct request_queue *q,
int token; int token;
token = sbitmap_get(&sdev->budget_map); token = sbitmap_get(&sdev->budget_map);
if (atomic_read(&sdev->device_blocked)) { if (token < 0)
if (token < 0) return -1;
goto out;
if (scsi_device_busy(sdev) > 1) if (!atomic_read(&sdev->device_blocked))
goto out_dec; return token;
/* /*
* unblock after device_blocked iterates to zero * Only unblock if no other commands are pending and
*/ * if device_blocked has decreased to zero
if (atomic_dec_return(&sdev->device_blocked) > 0) */
goto out_dec; if (scsi_device_busy(sdev) > 1 ||
SCSI_LOG_MLQUEUE(3, sdev_printk(KERN_INFO, sdev, atomic_dec_return(&sdev->device_blocked) > 0) {
"unblocking device at zero depth\n")); sbitmap_put(&sdev->budget_map, token);
return -1;
} }
SCSI_LOG_MLQUEUE(3, sdev_printk(KERN_INFO, sdev,
"unblocking device at zero depth\n"));
return token; return token;
out_dec:
if (token >= 0)
sbitmap_put(&sdev->budget_map, token);
out:
return -1;
} }
/* /*
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment