diff options
Diffstat (limited to 'drivers/scsi/libiscsi.c')
-rw-r--r-- | drivers/scsi/libiscsi.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/drivers/scsi/libiscsi.c b/drivers/scsi/libiscsi.c index 521dbf7e521d..0e8f26baca6e 100644 --- a/drivers/scsi/libiscsi.c +++ b/drivers/scsi/libiscsi.c | |||
@@ -1200,7 +1200,7 @@ int iscsi_queuecommand(struct scsi_cmnd *sc, void (*done)(struct scsi_cmnd *)) | |||
1200 | goto reject; | 1200 | goto reject; |
1201 | case ISCSI_STATE_RECOVERY_FAILED: | 1201 | case ISCSI_STATE_RECOVERY_FAILED: |
1202 | reason = FAILURE_SESSION_RECOVERY_TIMEOUT; | 1202 | reason = FAILURE_SESSION_RECOVERY_TIMEOUT; |
1203 | sc->result = DID_NO_CONNECT << 16; | 1203 | sc->result = DID_TRANSPORT_FAILFAST << 16; |
1204 | break; | 1204 | break; |
1205 | case ISCSI_STATE_TERMINATE: | 1205 | case ISCSI_STATE_TERMINATE: |
1206 | reason = FAILURE_SESSION_TERMINATE; | 1206 | reason = FAILURE_SESSION_TERMINATE; |
@@ -2333,8 +2333,10 @@ static void iscsi_start_session_recovery(struct iscsi_session *session, | |||
2333 | * flush queues. | 2333 | * flush queues. |
2334 | */ | 2334 | */ |
2335 | spin_lock_bh(&session->lock); | 2335 | spin_lock_bh(&session->lock); |
2336 | fail_all_commands(conn, -1, | 2336 | if (STOP_CONN_RECOVER) |
2337 | STOP_CONN_RECOVER ? DID_BUS_BUSY : DID_ERROR); | 2337 | fail_all_commands(conn, -1, DID_TRANSPORT_DISRUPTED); |
2338 | else | ||
2339 | fail_all_commands(conn, -1, DID_ERROR); | ||
2338 | flush_control_queues(session, conn); | 2340 | flush_control_queues(session, conn); |
2339 | spin_unlock_bh(&session->lock); | 2341 | spin_unlock_bh(&session->lock); |
2340 | mutex_unlock(&session->eh_mutex); | 2342 | mutex_unlock(&session->eh_mutex); |