diff options
-rw-r--r-- | drivers/scsi/qla2xxx/qla_isr.c | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/drivers/scsi/qla2xxx/qla_isr.c b/drivers/scsi/qla2xxx/qla_isr.c index fc4bfa7f839c..a76efd99d007 100644 --- a/drivers/scsi/qla2xxx/qla_isr.c +++ b/drivers/scsi/qla2xxx/qla_isr.c | |||
@@ -1187,7 +1187,12 @@ qla2x00_status_entry(scsi_qla_host_t *ha, void *pkt) | |||
1187 | cp->serial_number, comp_status, | 1187 | cp->serial_number, comp_status, |
1188 | atomic_read(&fcport->state))); | 1188 | atomic_read(&fcport->state))); |
1189 | 1189 | ||
1190 | cp->result = DID_BUS_BUSY << 16; | 1190 | /* |
1191 | * We are going to have the fc class block the rport | ||
1192 | * while we try to recover so instruct the mid layer | ||
1193 | * to requeue until the class decides how to handle this. | ||
1194 | */ | ||
1195 | cp->result = DID_TRANSPORT_DISRUPTED << 16; | ||
1191 | if (atomic_read(&fcport->state) == FCS_ONLINE) | 1196 | if (atomic_read(&fcport->state) == FCS_ONLINE) |
1192 | qla2x00_mark_device_lost(fcport->ha, fcport, 1, 1); | 1197 | qla2x00_mark_device_lost(fcport->ha, fcport, 1, 1); |
1193 | break; | 1198 | break; |
@@ -1214,7 +1219,12 @@ qla2x00_status_entry(scsi_qla_host_t *ha, void *pkt) | |||
1214 | break; | 1219 | break; |
1215 | 1220 | ||
1216 | case CS_TIMEOUT: | 1221 | case CS_TIMEOUT: |
1217 | cp->result = DID_BUS_BUSY << 16; | 1222 | /* |
1223 | * We are going to have the fc class block the rport | ||
1224 | * while we try to recover so instruct the mid layer | ||
1225 | * to requeue until the class decides how to handle this. | ||
1226 | */ | ||
1227 | cp->result = DID_TRANSPORT_DISRUPTED << 16; | ||
1218 | 1228 | ||
1219 | if (IS_FWI2_CAPABLE(ha)) { | 1229 | if (IS_FWI2_CAPABLE(ha)) { |
1220 | DEBUG2(printk(KERN_INFO | 1230 | DEBUG2(printk(KERN_INFO |