scsi: libfc: Map FC_TIMED_OUT to DID_TIME_OUT
authorHannes Reinecke <hare@suse.de>
Wed, 29 Nov 2023 16:58:32 +0000 (17:58 +0100)
committerMartin K. Petersen <martin.petersen@oracle.com>
Wed, 6 Dec 2023 02:32:11 +0000 (21:32 -0500)
When an exchange is completed with FC_TIMED_OUT we should map it to
DID_TIME_OUT to inform the SCSI midlayer that this was a command timeout;
DID_BUS_BUSY implies that the command was never sent which is not the case
here.

Signed-off-by: Hannes Reinecke <hare@suse.de>
Link: https://lore.kernel.org/r/20231129165832.224100-4-hare@kernel.org
Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
drivers/scsi/libfc/fc_fcp.c

index 05be0810b5e31b5fbdcce438192bb72ecc7bd209..80be3a936d9267a10d11c9d2c090ca21449fc0b0 100644 (file)
@@ -2062,9 +2062,9 @@ static void fc_io_compl(struct fc_fcp_pkt *fsp)
                sc_cmd->result = (DID_PARITY << 16);
                break;
        case FC_TIMED_OUT:
-               FC_FCP_DBG(fsp, "Returning DID_BUS_BUSY to scsi-ml "
+               FC_FCP_DBG(fsp, "Returning DID_TIME_OUT to scsi-ml "
                           "due to FC_TIMED_OUT\n");
-               sc_cmd->result = (DID_BUS_BUSY << 16) | fsp->io_status;
+               sc_cmd->result = (DID_TIME_OUT << 16);
                break;
        default:
                FC_FCP_DBG(fsp, "Returning DID_ERROR to scsi-ml "