Re: [PATCH v2 1/2] scsi: core: cleanup scsi_dev_queue_ready()

From: Bart Van Assche
Date: Tue Oct 17 2023 - 17:15:43 EST


On 10/15/23 19:08, Wenchao Hao wrote:
+ /*
+ * device_blocked is not set at mostly time, so check it first
+ * and return token when it is not set.
+ */
+ if (!atomic_read(&sdev->device_blocked))
+ return token;

This patch looks like an improvement to me. But I don't think that the
above comment is useful. I propose to move it into the patch
description.

- /*
- * unblock after device_blocked iterates to zero
- */
- if (atomic_dec_return(&sdev->device_blocked) > 0)
- goto out_dec;
- SCSI_LOG_MLQUEUE(3, sdev_printk(KERN_INFO, sdev,
- "unblocking device at zero depth\n"));
+ /*
+ * unblock after device_blocked iterates to zero
+ */
> + if (scsi_device_busy(sdev) > 1 ||
> + atomic_dec_return(&sdev->device_blocked) > 0) {
> + sbitmap_put(&sdev->budget_map, token);
> + return -1;
> }

Please make the above comment match the new code, e.g. by changing it
into the following: "Only unblock if no other commands are pending and
if device_blocked has decreased to zero".

Thanks,

Bart.