mirror of
https://github.com/adulau/aha.git
synced 2025-01-01 13:46:24 +00:00
[SCSI] scsi_error regression: Fix idempotent command handling
Drivers want to be able to return DID_TRANSPORT_DISRUPTED and have it do the right thing for commands like tape and passthrouh as far as retries go. The LLDs previously used DID_BUS_BUSY or DID_ERROR which followed the cmd->retries limit, but DID_TRANSPORT_DISRUPTED was skipping that check so it could have caused a problem with tape commands. This patch has DID_TRANSPORT_DISRUPTED check the cmd->retries/cmd->allowed. Signed-off-by: Mike Christie <mchristi@redhat.com> Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
This commit is contained in:
parent
d94ce6c6e9
commit
939c2288c3
1 changed files with 3 additions and 2 deletions
|
@ -1340,9 +1340,10 @@ int scsi_decide_disposition(struct scsi_cmnd *scmd)
|
||||||
* LLD/transport was disrupted during processing of the IO.
|
* LLD/transport was disrupted during processing of the IO.
|
||||||
* The transport class is now blocked/blocking,
|
* The transport class is now blocked/blocking,
|
||||||
* and the transport will decide what to do with the IO
|
* and the transport will decide what to do with the IO
|
||||||
* based on its timers and recovery capablilities.
|
* based on its timers and recovery capablilities if
|
||||||
|
* there are enough retries.
|
||||||
*/
|
*/
|
||||||
return ADD_TO_MLQUEUE;
|
goto maybe_retry;
|
||||||
case DID_TRANSPORT_FAILFAST:
|
case DID_TRANSPORT_FAILFAST:
|
||||||
/*
|
/*
|
||||||
* The transport decided to failfast the IO (most likely
|
* The transport decided to failfast the IO (most likely
|
||||||
|
|
Loading…
Reference in a new issue