• Nicholas Bellinger's avatar
    qla2xxx: Configure NPIV fc_vport via tcm_qla2xxx_npiv_make_lport · 49a47f2c
    Nicholas Bellinger authored
    This patch changes qla2xxx qlt_lport_register() code to accept
    target_lport_ptr + npiv_wwpn + npiv_wwnn parameters, and updates
    tcm_qla2xxx to use the new tcm_qla2xxx_lport_register_npiv_cb()
    callback for invoking fc_vport_create() from configfs context
    via tcm_qla2xxx_npiv_make_lport() code.
    
    In order for this to work, the qlt_lport_register() callback is
    now called without holding qla_tgt_mutex, as the fc_vport creation
    process will call qlt_vport_create() -> qlt_add_target(), which
    already expects to acquire it.
    
    It enforces /sys/kernel/config/target/qla2xxx_npiv/$NPIV_WWPN
    naming in the following format:
    
         $PHYSICAL_WWPN@$NPIV_WWPN:$NPIV_WWNN
    
    and assumes the $PHYSICAL_WWPN in question has already had been
    configured for target mode in non NPIV mode.
    
    Finally, it updates existing tcm_qla2xxx_lport_register_cb() logic
    to setup the non NPIV assignments that have now been moved out of
    qlt_lport_register() code.
    
    Cc: Sawan Chandak <sawan.chandak@qlogic.com>
    Cc: Quinn Tran <quinn.tran@qlogic.com>
    Cc: Saurav Kashyap <saurav.kashyap@qlogic.com>
    Signed-off-by: default avatarNicholas Bellinger <nab@linux-iscsi.org>
    49a47f2c
qla_target.h 29.2 KB