}
 
        /* Close window on fcport/rport state-transitioning. */
-       if (fcport->drport) {
-               cmd->result = DID_IMM_RETRY << 16;
-               goto qc_fail_command;
-       }
+       if (fcport->drport)
+               goto qc_target_busy;
 
        if (atomic_read(&fcport->state) != FCS_ONLINE) {
                if (atomic_read(&fcport->state) == FCS_DEVICE_DEAD ||
                        cmd->result = DID_NO_CONNECT << 16;
                        goto qc_fail_command;
                }
-               goto qc_host_busy;
+               goto qc_target_busy;
        }
 
        spin_unlock_irq(ha->host->host_lock);
 
 qc_host_busy_lock:
        spin_lock_irq(ha->host->host_lock);
-
-qc_host_busy:
        return SCSI_MLQUEUE_HOST_BUSY;
 
+qc_target_busy:
+       return SCSI_MLQUEUE_TARGET_BUSY;
+
 qc_fail_command:
        done(cmd);
 
        }
 
        /* Close window on fcport/rport state-transitioning. */
-       if (fcport->drport) {
-               cmd->result = DID_IMM_RETRY << 16;
-               goto qc24_fail_command;
-       }
+       if (fcport->drport)
+               goto qc24_target_busy;
 
        if (atomic_read(&fcport->state) != FCS_ONLINE) {
                if (atomic_read(&fcport->state) == FCS_DEVICE_DEAD ||
                        cmd->result = DID_NO_CONNECT << 16;
                        goto qc24_fail_command;
                }
-               goto qc24_host_busy;
+               goto qc24_target_busy;
        }
 
        spin_unlock_irq(ha->host->host_lock);
 
 qc24_host_busy_lock:
        spin_lock_irq(ha->host->host_lock);
-
-qc24_host_busy:
        return SCSI_MLQUEUE_HOST_BUSY;
 
+qc24_target_busy:
+       return SCSI_MLQUEUE_TARGET_BUSY;
+
 qc24_fail_command:
        done(cmd);