scsi: lpfc: Use rport as argument for lpfc_chk_tgt_mapped()
authorHannes Reinecke <hare@suse.de>
Tue, 1 Mar 2022 14:37:18 +0000 (15:37 +0100)
committerMartin K. Petersen <martin.petersen@oracle.com>
Wed, 2 Mar 2022 04:56:29 +0000 (23:56 -0500)
We only need the rport structure for lpfc_chk_tgt_mapped().

Link: https://lore.kernel.org/r/20220301143718.40913-6-hare@suse.de
Cc: James Smart <james.smart@broadcom.com>
Reviewed-by: James Smart <jsmart2021@gmail.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Hannes Reinecke <hare@suse.de>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
drivers/scsi/lpfc/lpfc_scsi.c

index 778e40d751ac73cbfbaaf9a5c6ae7ecc190d6673..79453dc6593df0039f75b3d381de280f73df99a8 100644 (file)
@@ -6244,7 +6244,7 @@ lpfc_send_taskmgmt(struct lpfc_vport *vport, struct fc_rport *rport,
 /**
  * lpfc_chk_tgt_mapped -
  * @vport: The virtual port to check on
- * @cmnd: Pointer to scsi_cmnd data structure.
+ * @rport: Pointer to fc_rport data structure.
  *
  * This routine delays until the scsi target (aka rport) for the
  * command exists (is present and logged in) or we declare it non-existent.
@@ -6254,19 +6254,20 @@ lpfc_send_taskmgmt(struct lpfc_vport *vport, struct fc_rport *rport,
  *  0x2002 - Success
  **/
 static int
-lpfc_chk_tgt_mapped(struct lpfc_vport *vport, struct scsi_cmnd *cmnd)
+lpfc_chk_tgt_mapped(struct lpfc_vport *vport, struct fc_rport *rport)
 {
        struct lpfc_rport_data *rdata;
-       struct lpfc_nodelist *pnode;
+       struct lpfc_nodelist *pnode = NULL;
        unsigned long later;
 
-       rdata = lpfc_rport_data_from_scsi_device(cmnd->device);
+       rdata = rport->dd_data;
        if (!rdata) {
                lpfc_printf_vlog(vport, KERN_INFO, LOG_FCP,
                        "0797 Tgt Map rport failure: rdata x%px\n", rdata);
                return FAILED;
        }
        pnode = rdata->pnode;
+
        /*
         * If target is not in a MAPPED state, delay until
         * target is rediscovered or devloss timeout expires.
@@ -6278,7 +6279,7 @@ lpfc_chk_tgt_mapped(struct lpfc_vport *vport, struct scsi_cmnd *cmnd)
                if (pnode->nlp_state == NLP_STE_MAPPED_NODE)
                        return SUCCESS;
                schedule_timeout_uninterruptible(msecs_to_jiffies(500));
-               rdata = lpfc_rport_data_from_scsi_device(cmnd->device);
+               rdata = rport->dd_data;
                if (!rdata)
                        return FAILED;
                pnode = rdata->pnode;
@@ -6371,7 +6372,7 @@ lpfc_device_reset_handler(struct scsi_cmnd *cmnd)
        if (status != 0 && status != SUCCESS)
                return status;
 
-       status = lpfc_chk_tgt_mapped(vport, cmnd);
+       status = lpfc_chk_tgt_mapped(vport, rport);
        if (status == FAILED) {
                lpfc_printf_vlog(vport, KERN_ERR, LOG_TRACE_EVENT,
                        "0721 Device Reset rport failure: rdata x%px\n", rdata);
@@ -6449,7 +6450,7 @@ lpfc_target_reset_handler(struct scsi_cmnd *cmnd)
        if (status != 0 && status != SUCCESS)
                return status;
 
-       status = lpfc_chk_tgt_mapped(vport, cmnd);
+       status = lpfc_chk_tgt_mapped(vport, rport);
        if (status == FAILED) {
                lpfc_printf_vlog(vport, KERN_ERR, LOG_TRACE_EVENT,
                        "0722 Target Reset rport failure: rdata x%px\n", rdata);