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

From: Wenchao Hao
Date: Tue Oct 17 2023 - 22:22:22 EST


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.