diff options
author | James Smart <james.smart@emulex.com> | 2012-01-18 22:25:25 +0100 |
---|---|---|
committer | James Bottomley <JBottomley@Parallels.com> | 2012-02-19 15:08:53 +0100 |
commit | eff4a01b6e9f8cee3c541ab7f2ad18b5bbffd124 (patch) | |
tree | f77ae41ac94f3bdc6cfde5fb5847f807c1f257ae /drivers/scsi/lpfc/lpfc_init.c | |
parent | [SCSI] lpfc 8.3.29: T10 Diff fixes and enhancements (diff) | |
download | linux-eff4a01b6e9f8cee3c541ab7f2ad18b5bbffd124.tar.xz linux-eff4a01b6e9f8cee3c541ab7f2ad18b5bbffd124.zip |
[SCSI] lpfc 8.3.29: FC Discovery state machine fixes
FC Discovery state machine fixes.
- Fix bug with driver returning the inactive ndlp (125743)
- Fix discovery problem when in pt2pt by copying old ndlp state before
state change (126887)
- Fix ndlp nodelist not empty wait timeout during driver unloading (127052)
Signed-off-by: Alex Iannicelli <alex.iannicelli@emulex.com>
Signed-off-by: James Smart <james.smart@emulex.com>
Signed-off-by: James Bottomley <JBottomley@Parallels.com>
Diffstat (limited to 'drivers/scsi/lpfc/lpfc_init.c')
-rw-r--r-- | drivers/scsi/lpfc/lpfc_init.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/drivers/scsi/lpfc/lpfc_init.c b/drivers/scsi/lpfc/lpfc_init.c index d9628770f11e..a91914968cbb 100644 --- a/drivers/scsi/lpfc/lpfc_init.c +++ b/drivers/scsi/lpfc/lpfc_init.c @@ -2341,13 +2341,20 @@ lpfc_cleanup(struct lpfc_vport *vport) continue; } + /* take care of nodes in unused state before the state + * machine taking action. + */ + if (ndlp->nlp_state == NLP_STE_UNUSED_NODE) { + lpfc_nlp_put(ndlp); + continue; + } + if (ndlp->nlp_type & NLP_FABRIC) lpfc_disc_state_machine(vport, ndlp, NULL, NLP_EVT_DEVICE_RECOVERY); lpfc_disc_state_machine(vport, ndlp, NULL, NLP_EVT_DEVICE_RM); - } /* At this point, ALL ndlp's should be gone |