switch (session->state) {
                case ISCSI_STATE_IN_RECOVERY:
                        reason = FAILURE_SESSION_IN_RECOVERY;
-                       sc->result = DID_IMM_RETRY << 16;
-                       break;
+                       goto reject;
                case ISCSI_STATE_LOGGING_OUT:
                        reason = FAILURE_SESSION_LOGGING_OUT;
-                       sc->result = DID_IMM_RETRY << 16;
-                       break;
+                       goto reject;
                case ISCSI_STATE_RECOVERY_FAILED:
                        reason = FAILURE_SESSION_RECOVERY_TIMEOUT;
                        sc->result = DID_NO_CONNECT << 16;
        spin_unlock(&session->lock);
        debug_scsi("cmd 0x%x rejected (%d)\n", sc->cmnd[0], reason);
        spin_lock(host->host_lock);
-       return SCSI_MLQUEUE_HOST_BUSY;
+       return SCSI_MLQUEUE_TARGET_BUSY;
 
 fault:
        spin_unlock(&session->lock);