scsi: libfc: do not overwrite DID_TIME_OUT status
When a command is aborted it might already have the DID_TIME_OUT status set, so we shouldn't be overwriting that. Signed-off-by: Hannes Reinecke <hare@suse.com> Acked-by: Johannes Thumshirn <jth@kernel.org> Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
This commit is contained in:
Родитель
69aabccede
Коммит
0f4c16a2f4
|
@ -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 "
|
||||
|
|
Загрузка…
Ссылка в новой задаче