• J
    scsi: lpfc: Add nvme initiator devloss support · 7a06dcd3
    James Smart 提交于
    Add nvme initiator devloss support
    
    The existing implementation was based on no devloss behavior in the
    transport (e.g. immediate teardown) so code didn't properly handle
    delayed nvme rport device unregister calls.  In addition, the driver was
    not correctly cycling the rport port role for each
    register-unregister-reregister process.
    
    This patch does the following:
    
    Rework the code to properly handle rport device unregister calls and
    potential re-allocation of the remoteport structure if the port comes
    back in under dev_loss_tmo.
    
    Correct code that was incorrectly cycling the rport port role for each
    register-unregister-reregister process.
    
    Prep the code to enable calling the nvme_fc transport api to dynamically
    update dev_loss_tmo when the scsi sysfs interface changes it.
    
    Memset the rpinfo structure in the registration call to enforce "accept
    nvme transport defaults" in the registration call.  Driver parameters do
    influence the dev_loss_tmo transport setting dynamically.
    
    Simplifies the register function: the driver was incorrectly searching
    its local rport list to determine resume or new semantics, which is not
    valid as the transport already handles this.  The rport was resumed if
    the rport handed back matches the ndlp->nrport pointer.  Otherwise,
    devloss fired and the ndlp's nrport is NULL.
    Signed-off-by: NDick Kennedy <dick.kennedy@broadcom.com>
    Signed-off-by: NJames Smart <james.smart@broadcom.com>
    Signed-off-by: NMartin K. Petersen <martin.petersen@oracle.com>
    7a06dcd3
lpfc_attr.c 188.6 KB