|
@@ -2008,9 +2008,15 @@ static void fc_io_compl(struct fc_fcp_pkt *fsp)
|
|
|
sc_cmd->result = (DID_ERROR << 16) | fsp->cdb_status;
|
|
|
break;
|
|
|
case FC_CMD_ABORTED:
|
|
|
- FC_FCP_DBG(fsp, "Returning DID_ERROR to scsi-ml "
|
|
|
- "due to FC_CMD_ABORTED\n");
|
|
|
- sc_cmd->result = (DID_ERROR << 16) | fsp->io_status;
|
|
|
+ if (host_byte(sc_cmd->result) == DID_TIME_OUT)
|
|
|
+ FC_FCP_DBG(fsp, "Returning DID_TIME_OUT to scsi-ml "
|
|
|
+ "due to FC_CMD_ABORTED\n");
|
|
|
+ else {
|
|
|
+ FC_FCP_DBG(fsp, "Returning DID_ERROR to scsi-ml "
|
|
|
+ "due to FC_CMD_ABORTED\n");
|
|
|
+ set_host_byte(sc_cmd, DID_ERROR);
|
|
|
+ }
|
|
|
+ sc_cmd->result |= fsp->io_status;
|
|
|
break;
|
|
|
case FC_CMD_RESET:
|
|
|
FC_FCP_DBG(fsp, "Returning DID_RESET to scsi-ml "
|