mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-03-09 08:30:47 -04:00
scsi: lpfc: Fix LUN loss after cable pull
On devices that support FCP sequence error recovery, which attempts to preserve the devices login across link bounce, adisc is used for device validation. Turns out the device fc4 type is cleared as part of the link bounce, but the ADISC handling doesn't restore the FC4 support as it normally would with a PRLI. This caused situations where the device wasn't reregistered with the transport thus scan logic and LUN discovery never kicked in. In the ADISC completion handling, reset the fc4 type so that transport port reregistration occurs with the remote port. Link: https://lore.kernel.org/r/20200803210229.23063-8-jsmart2021@gmail.com 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:
committed by
Martin K. Petersen
parent
feb3cc57fb
commit
00081c5ca4
@@ -1745,7 +1745,13 @@ lpfc_cmpl_adisc_adisc_issue(struct lpfc_vport *vport,
|
||||
}
|
||||
}
|
||||
|
||||
if (ndlp->nlp_type & NLP_FCP_TARGET) {
|
||||
if (ndlp->nlp_type & NLP_FCP_TARGET)
|
||||
ndlp->nlp_fc4_type |= NLP_FC4_FCP;
|
||||
|
||||
if (ndlp->nlp_type & NLP_NVME_TARGET)
|
||||
ndlp->nlp_fc4_type |= NLP_FC4_NVME;
|
||||
|
||||
if (ndlp->nlp_type & (NLP_FCP_TARGET | NLP_NVME_TARGET)) {
|
||||
ndlp->nlp_prev_state = NLP_STE_ADISC_ISSUE;
|
||||
lpfc_nlp_set_state(vport, ndlp, NLP_STE_MAPPED_NODE);
|
||||
} else {
|
||||
|
||||
Reference in New Issue
Block a user