]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
ata: libata-scsi: improve readability of ata_scsi_qc_issue()
authorNiklas Cassel <cassel@kernel.org>
Thu, 14 May 2026 07:38:59 +0000 (09:38 +0200)
committerNiklas Cassel <cassel@kernel.org>
Mon, 18 May 2026 10:10:34 +0000 (12:10 +0200)
Improve readability of ata_scsi_qc_issue().

No functional changes.

Tested-by: Tommy Kelly <linux@tkel.ly>
Reviewed-by: Damien Le Moal <dlemoal@kernel.org>
Signed-off-by: Niklas Cassel <cassel@kernel.org>
drivers/ata/libata-scsi.c

index f44612e269a4d6ea943825f6f491e2014c7c6bd3..f9ca5410e223cfdf3b6c6a87221c4f46f133c770 100644 (file)
@@ -1767,7 +1767,7 @@ static int ata_scsi_qc_issue(struct ata_port *ap, struct ata_queued_cmd *qc)
        int ret;
 
        if (!ap->ops->qc_defer)
-               goto issue;
+               goto issue_qc;
 
        /*
         * If we already have a deferred qc, then rely on the SCSI layer to
@@ -1786,38 +1786,37 @@ static int ata_scsi_qc_issue(struct ata_port *ap, struct ata_queued_cmd *qc)
                break;
        case ATA_DEFER_LINK:
                ret = SCSI_MLQUEUE_DEVICE_BUSY;
-               break;
+               goto defer_qc;
        case ATA_DEFER_PORT:
                ret = SCSI_MLQUEUE_HOST_BUSY;
-               break;
+               goto defer_qc;
        default:
                WARN_ON_ONCE(1);
                ret = SCSI_MLQUEUE_HOST_BUSY;
-               break;
+               goto defer_qc;
        }
 
-       if (ret) {
-               /*
-                * We must defer this qc: if this is not an NCQ command, keep
-                * this qc as a deferred one and report to the SCSI layer that
-                * we issued it so that it is not requeued. The deferred qc will
-                * be issued with the port deferred_qc_work once all on-going
-                * commands complete.
-                */
-               if (!ata_is_ncq(qc->tf.protocol)) {
-                       ap->deferred_qc = qc;
-                       return 0;
-               }
+issue_qc:
+       ata_qc_issue(qc);
+       return 0;
 
-               /* Force a requeue of the command to defer its execution. */
-               ata_qc_free(qc);
-               return ret;
+defer_qc:
+       /*
+        * We must defer this qc: if this is not an NCQ command, keep
+        * this qc as a deferred one and report to the SCSI layer that
+        * we issued it so that it is not requeued. The deferred qc will
+        * be issued with the port deferred_qc_work once all on-going
+        * commands complete.
+        */
+       if (!ata_is_ncq(qc->tf.protocol)) {
+               ap->deferred_qc = qc;
+               return 0;
        }
 
-issue:
-       ata_qc_issue(qc);
+       /* Force a requeue of the command to defer its execution. */
+       ata_qc_free(qc);
 
-       return 0;
+       return ret;
 }
 
 /**