|
@@ -1194,12 +1194,10 @@ int iscsi_queuecommand(struct scsi_cmnd *sc, void (*done)(struct scsi_cmnd *))
|
|
switch (session->state) {
|
|
switch (session->state) {
|
|
case ISCSI_STATE_IN_RECOVERY:
|
|
case ISCSI_STATE_IN_RECOVERY:
|
|
reason = FAILURE_SESSION_IN_RECOVERY;
|
|
reason = FAILURE_SESSION_IN_RECOVERY;
|
|
- sc->result = DID_IMM_RETRY << 16;
|
|
|
|
- break;
|
|
|
|
|
|
+ goto reject;
|
|
case ISCSI_STATE_LOGGING_OUT:
|
|
case ISCSI_STATE_LOGGING_OUT:
|
|
reason = FAILURE_SESSION_LOGGING_OUT;
|
|
reason = FAILURE_SESSION_LOGGING_OUT;
|
|
- sc->result = DID_IMM_RETRY << 16;
|
|
|
|
- break;
|
|
|
|
|
|
+ goto reject;
|
|
case ISCSI_STATE_RECOVERY_FAILED:
|
|
case ISCSI_STATE_RECOVERY_FAILED:
|
|
reason = FAILURE_SESSION_RECOVERY_TIMEOUT;
|
|
reason = FAILURE_SESSION_RECOVERY_TIMEOUT;
|
|
sc->result = DID_NO_CONNECT << 16;
|
|
sc->result = DID_NO_CONNECT << 16;
|
|
@@ -1267,7 +1265,7 @@ reject:
|
|
spin_unlock(&session->lock);
|
|
spin_unlock(&session->lock);
|
|
debug_scsi("cmd 0x%x rejected (%d)\n", sc->cmnd[0], reason);
|
|
debug_scsi("cmd 0x%x rejected (%d)\n", sc->cmnd[0], reason);
|
|
spin_lock(host->host_lock);
|
|
spin_lock(host->host_lock);
|
|
- return SCSI_MLQUEUE_HOST_BUSY;
|
|
|
|
|
|
+ return SCSI_MLQUEUE_TARGET_BUSY;
|
|
|
|
|
|
fault:
|
|
fault:
|
|
spin_unlock(&session->lock);
|
|
spin_unlock(&session->lock);
|