diff options
Diffstat (limited to 'drivers/scsi/scsi_error.c')
-rw-r--r-- | drivers/scsi/scsi_error.c | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/drivers/scsi/scsi_error.c b/drivers/scsi/scsi_error.c index bbbc186dbc1..1de30eb83bb 100644 --- a/drivers/scsi/scsi_error.c +++ b/drivers/scsi/scsi_error.c | |||
@@ -473,14 +473,17 @@ static int scsi_eh_completed_normally(struct scsi_cmnd *scmd) | |||
473 | */ | 473 | */ |
474 | return SUCCESS; | 474 | return SUCCESS; |
475 | case RESERVATION_CONFLICT: | 475 | case RESERVATION_CONFLICT: |
476 | /* | 476 | if (scmd->cmnd[0] == TEST_UNIT_READY) |
477 | * let issuer deal with this, it could be just fine | 477 | /* it is a success, we probed the device and |
478 | */ | 478 | * found it */ |
479 | return SUCCESS; | 479 | return SUCCESS; |
480 | /* otherwise, we failed to send the command */ | ||
481 | return FAILED; | ||
480 | case QUEUE_FULL: | 482 | case QUEUE_FULL: |
481 | scsi_handle_queue_full(scmd->device); | 483 | scsi_handle_queue_full(scmd->device); |
482 | /* fall through */ | 484 | /* fall through */ |
483 | case BUSY: | 485 | case BUSY: |
486 | return NEEDS_RETRY; | ||
484 | default: | 487 | default: |
485 | return FAILED; | 488 | return FAILED; |
486 | } | 489 | } |