On 2023/10/18 5:15, Bart Van Assche wrote:
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".
OK, would update.
Thanks.
Thanks,
Bart.