• Benjamin Block's avatar
    scsi: zfcp: Fence fc_host updates during link-down handling · 990486f3
    Benjamin Block authored
    When receiving a notification that a FCP device lost its local link we
    usually update the fibre channel host object which represents that FCP
    device to reflect that.
    
    This notification/information can also surface when the FCP device is
    running through adapter recovery (exchange config and exchange port data
    return incomplete).
    
    When moving the scsi host object allocation and registration - and thus
    also the fibre channel host object allocation - to after the first exchange
    config and exchange port data, and this happens during the very first
    adapter recovery, these updates can not be done until after the scsi host
    object is allocated.
    
    Reorder the fc_host updates in zfcp_fsf_fc_host_link_down() so that they
    only happen after a check of whether the scsi host object is already
    allocated or not.
    
    During the first adapter recovery this will cause the skip of these updates
    if a link-down condition is detected, but we can repeat them after we
    allocated the scsi host object, if necessary.
    
    For any further link-down handling the only changes in the work flow are
    the slightly reordered assignments in zfcp_fsf_fc_host_link_down().
    
    Link: https://lore.kernel.org/r/f841f2cda61dcd7b8549910c44e1831927459edf.1588956679.git.bblock@linux.ibm.comReviewed-by: default avatarSteffen Maier <maier@linux.ibm.com>
    Signed-off-by: default avatarBenjamin Block <bblock@linux.ibm.com>
    Signed-off-by: default avatarMartin K. Petersen <martin.petersen@oracle.com>
    990486f3
zfcp_fsf.c 77.5 KB