mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-01-09 06:43:09 +00:00
lpfc: fix for handling unmapped ndlp in target reset handler
Fix for handling unmapped ndlp in target reset handler Signed-off-by: James Smart <james.smart@emulex.com> Signed-off-by: Dick Kennedy <dick.kennedy@emulex.com> Signed-off-by: Christoph Hellwig <hch@lst.de>
This commit is contained in:
parent
eb01656688
commit
8c50d25c0e
@ -5339,7 +5339,13 @@ lpfc_target_reset_handler(struct scsi_cmnd *cmnd)
|
||||
if (status == FAILED) {
|
||||
lpfc_printf_vlog(vport, KERN_ERR, LOG_FCP,
|
||||
"0722 Target Reset rport failure: rdata x%p\n", rdata);
|
||||
return FAILED;
|
||||
spin_lock_irq(shost->host_lock);
|
||||
pnode->nlp_flag &= ~NLP_NPR_ADISC;
|
||||
pnode->nlp_fcp_info &= ~NLP_FCP_2_DEVICE;
|
||||
spin_unlock_irq(shost->host_lock);
|
||||
lpfc_reset_flush_io_context(vport, tgt_id, lun_id,
|
||||
LPFC_CTX_TGT);
|
||||
return FAST_IO_FAIL;
|
||||
}
|
||||
|
||||
scsi_event.event_type = FC_REG_SCSI_EVENT;
|
||||
|
@ -10132,7 +10132,9 @@ lpfc_sli_abort_taskmgmt(struct lpfc_vport *vport, struct lpfc_sli_ring *pring,
|
||||
uint16_t tgt_id, uint64_t lun_id, lpfc_ctx_cmd cmd)
|
||||
{
|
||||
struct lpfc_hba *phba = vport->phba;
|
||||
struct lpfc_scsi_buf *lpfc_cmd;
|
||||
struct lpfc_iocbq *abtsiocbq;
|
||||
struct lpfc_nodelist *ndlp;
|
||||
struct lpfc_iocbq *iocbq;
|
||||
IOCB_t *icmd;
|
||||
int sum, i, ret_val;
|
||||
@ -10187,7 +10189,11 @@ lpfc_sli_abort_taskmgmt(struct lpfc_vport *vport, struct lpfc_sli_ring *pring,
|
||||
if (iocbq->iocb_flag & LPFC_IO_FOF)
|
||||
abtsiocbq->iocb_flag |= LPFC_IO_FOF;
|
||||
|
||||
if (lpfc_is_link_up(phba))
|
||||
lpfc_cmd = container_of(iocbq, struct lpfc_scsi_buf, cur_iocbq);
|
||||
ndlp = lpfc_cmd->rdata->pnode;
|
||||
|
||||
if (lpfc_is_link_up(phba) &&
|
||||
(ndlp && ndlp->nlp_state == NLP_STE_MAPPED_NODE))
|
||||
abtsiocbq->iocb.ulpCommand = CMD_ABORT_XRI_CN;
|
||||
else
|
||||
abtsiocbq->iocb.ulpCommand = CMD_CLOSE_XRI_CN;
|
||||
|
Loading…
Reference in New Issue
Block a user