mirror of https://gitee.com/openkylin/linux.git
scsi: lpfc: Fix propagation of devloss_tmo setting to nvme transport
If admin changes the devloss_tmo on an rport via the fc_remote_port rport dev_loss_tmo attribute, the value is on set on scsi stack. The change is not propagated to NVMe. The set routine in the lldd lacks the call to nvme_fc_set_remoteport_devloss() to set the value. Fix by adding the call to the lldd set routine. Signed-off-by: Dick Kennedy <dick.kennedy@broadcom.com> Signed-off-by: James Smart <jsmart2021@gmail.com> Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
This commit is contained in:
parent
b95b21193c
commit
a643c6de14
|
@ -6845,10 +6845,31 @@ lpfc_get_starget_port_name(struct scsi_target *starget)
|
|||
static void
|
||||
lpfc_set_rport_loss_tmo(struct fc_rport *rport, uint32_t timeout)
|
||||
{
|
||||
struct lpfc_rport_data *rdata = rport->dd_data;
|
||||
struct lpfc_nodelist *ndlp = rdata->pnode;
|
||||
#if (IS_ENABLED(CONFIG_NVME_FC))
|
||||
struct lpfc_nvme_rport *nrport = NULL;
|
||||
#endif
|
||||
|
||||
if (timeout)
|
||||
rport->dev_loss_tmo = timeout;
|
||||
else
|
||||
rport->dev_loss_tmo = 1;
|
||||
|
||||
if (!ndlp || !NLP_CHK_NODE_ACT(ndlp)) {
|
||||
dev_info(&rport->dev, "Cannot find remote node to "
|
||||
"set rport dev loss tmo, port_id x%x\n",
|
||||
rport->port_id);
|
||||
return;
|
||||
}
|
||||
|
||||
#if (IS_ENABLED(CONFIG_NVME_FC))
|
||||
nrport = lpfc_ndlp_get_nrport(ndlp);
|
||||
|
||||
if (nrport && nrport->remoteport)
|
||||
nvme_fc_set_remoteport_devloss(nrport->remoteport,
|
||||
rport->dev_loss_tmo);
|
||||
#endif
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
Loading…
Reference in New Issue