aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/scsi/scsi_error.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/scsi/scsi_error.c')
-rw-r--r--drivers/scsi/scsi_error.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/drivers/scsi/scsi_error.c b/drivers/scsi/scsi_error.c
index edfaf241c5ba..381838ebd460 100644
--- a/drivers/scsi/scsi_error.c
+++ b/drivers/scsi/scsi_error.c
@@ -136,7 +136,7 @@ enum blk_eh_timer_return scsi_times_out(struct request *req)
136 else 136 else
137 eh_timed_out = NULL; 137 eh_timed_out = NULL;
138 138
139 if (eh_timed_out) 139 if (eh_timed_out) {
140 rtn = eh_timed_out(scmd); 140 rtn = eh_timed_out(scmd);
141 switch (rtn) { 141 switch (rtn) {
142 case BLK_EH_NOT_HANDLED: 142 case BLK_EH_NOT_HANDLED:
@@ -144,6 +144,7 @@ enum blk_eh_timer_return scsi_times_out(struct request *req)
144 default: 144 default:
145 return rtn; 145 return rtn;
146 } 146 }
147 }
147 148
148 if (unlikely(!scsi_eh_scmd_add(scmd, SCSI_EH_CANCEL_CMD))) { 149 if (unlikely(!scsi_eh_scmd_add(scmd, SCSI_EH_CANCEL_CMD))) {
149 scmd->result |= DID_TIME_OUT << 16; 150 scmd->result |= DID_TIME_OUT << 16;
@@ -1405,8 +1406,9 @@ int scsi_decide_disposition(struct scsi_cmnd *scmd)
1405 return ADD_TO_MLQUEUE; 1406 return ADD_TO_MLQUEUE;
1406 case GOOD: 1407 case GOOD:
1407 case COMMAND_TERMINATED: 1408 case COMMAND_TERMINATED:
1408 case TASK_ABORTED:
1409 return SUCCESS; 1409 return SUCCESS;
1410 case TASK_ABORTED:
1411 goto maybe_retry;
1410 case CHECK_CONDITION: 1412 case CHECK_CONDITION:
1411 rtn = scsi_check_sense(scmd); 1413 rtn = scsi_check_sense(scmd);
1412 if (rtn == NEEDS_RETRY) 1414 if (rtn == NEEDS_RETRY)