diff options
author | Andrew Vasquez <andrew.vasquez@qlogic.com> | 2009-06-03 12:55:18 -0400 |
---|---|---|
committer | James Bottomley <James.Bottomley@HansenPartnership.com> | 2009-06-08 15:46:43 -0400 |
commit | 94b3aa47ac1ea0aa31b3f59ad121cdf55e038594 (patch) | |
tree | 308dd3f096153b0217f8accc8de6e1746fc7d1d2 /drivers/scsi/qla2xxx | |
parent | cbc8eb67da11a4972834f61fe4729f4c037a17c9 (diff) |
[SCSI] qla2xxx: Use 'proper' DID_* status code for dropped-frame scenarios.
The SCSI-midlayer's fast-fail codes consider an DID_ERROR status
as a driver-error and the failed I/O would then be retried in the
midlayer without being fast-failed to dm-multipath. DID_BUS_BUSY
status returns would induce unneeded path-failures events being
propagated to the DM/MD.
Signed-off-by: Andrew Vasquez <andrew.vasquez@qlogic.com>
Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
Diffstat (limited to 'drivers/scsi/qla2xxx')
-rw-r--r-- | drivers/scsi/qla2xxx/qla_isr.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/drivers/scsi/qla2xxx/qla_isr.c b/drivers/scsi/qla2xxx/qla_isr.c index eb35d2050f7a..c8d0a176fea4 100644 --- a/drivers/scsi/qla2xxx/qla_isr.c +++ b/drivers/scsi/qla2xxx/qla_isr.c | |||
@@ -1211,7 +1211,7 @@ qla2x00_status_entry(scsi_qla_host_t *vha, struct rsp_que *rsp, void *pkt) | |||
1211 | /* | 1211 | /* |
1212 | * If RISC reports underrun and target does not report | 1212 | * If RISC reports underrun and target does not report |
1213 | * it then we must have a lost frame, so tell upper | 1213 | * it then we must have a lost frame, so tell upper |
1214 | * layer to retry it by reporting a bus busy. | 1214 | * layer to retry it by reporting an error. |
1215 | */ | 1215 | */ |
1216 | if (!(scsi_status & SS_RESIDUAL_UNDER)) { | 1216 | if (!(scsi_status & SS_RESIDUAL_UNDER)) { |
1217 | DEBUG2(printk("scsi(%ld:%d:%d:%d) Dropped " | 1217 | DEBUG2(printk("scsi(%ld:%d:%d:%d) Dropped " |
@@ -1221,7 +1221,7 @@ qla2x00_status_entry(scsi_qla_host_t *vha, struct rsp_que *rsp, void *pkt) | |||
1221 | cp->device->id, cp->device->lun, resid, | 1221 | cp->device->id, cp->device->lun, resid, |
1222 | scsi_bufflen(cp))); | 1222 | scsi_bufflen(cp))); |
1223 | 1223 | ||
1224 | cp->result = DID_BUS_BUSY << 16; | 1224 | cp->result = DID_ERROR << 16; |
1225 | break; | 1225 | break; |
1226 | } | 1226 | } |
1227 | 1227 | ||