[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>
This commit is contained in:
committed by
James Bottomley
parent
cbc8eb67da
commit
94b3aa47ac
@@ -1211,7 +1211,7 @@ qla2x00_status_entry(scsi_qla_host_t *vha, struct rsp_que *rsp, void *pkt)
|
|||||||
/*
|
/*
|
||||||
* If RISC reports underrun and target does not report
|
* If RISC reports underrun and target does not report
|
||||||
* it then we must have a lost frame, so tell upper
|
* it then we must have a lost frame, so tell upper
|
||||||
* layer to retry it by reporting a bus busy.
|
* layer to retry it by reporting an error.
|
||||||
*/
|
*/
|
||||||
if (!(scsi_status & SS_RESIDUAL_UNDER)) {
|
if (!(scsi_status & SS_RESIDUAL_UNDER)) {
|
||||||
DEBUG2(printk("scsi(%ld:%d:%d:%d) Dropped "
|
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)
|
|||||||
cp->device->id, cp->device->lun, resid,
|
cp->device->id, cp->device->lun, resid,
|
||||||
scsi_bufflen(cp)));
|
scsi_bufflen(cp)));
|
||||||
|
|
||||||
cp->result = DID_BUS_BUSY << 16;
|
cp->result = DID_ERROR << 16;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user