scsi: qla2xxx: fc_remote_port_chkready() returns a SCSI result value
authorHannes Reinecke <hare@suse.de>
Wed, 13 Jan 2021 09:04:58 +0000 (10:04 +0100)
committerMartin K. Petersen <martin.petersen@oracle.com>
Sat, 23 Jan 2021 02:14:12 +0000 (21:14 -0500)
fc_remote_port_chkready() returns a SCSI result value, not the port
status. Fix the value returned when the remote port isn't set.

Link: https://lore.kernel.org/r/20210113090500.129644-34-hare@suse.de
Reviewed-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Himanshu Madhani <himanshu.madhani@oracle.com>
Signed-off-by: Hannes Reinecke <hare@suse.de>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
drivers/scsi/qla2xxx/qla_os.c

index 3cfd83fce9c57cbaebe5c93c728e410e9f8622e8..89a7e47b9ff8a127e1e8e06aac42057f2fe31793 100644 (file)
@@ -962,7 +962,7 @@ qla2xxx_mqueuecommand(struct Scsi_Host *host, struct scsi_cmnd *cmd,
        srb_t *sp;
        int rval;
 
-       rval = rport ? fc_remote_port_chkready(rport) : FC_PORTSTATE_OFFLINE;
+       rval = rport ? fc_remote_port_chkready(rport) : (DID_NO_CONNECT << 16);
        if (rval) {
                cmd->result = rval;
                ql_dbg(ql_dbg_io + ql_dbg_verbose, vha, 0x3076,