• Nicholas Bellinger's avatar
    target: Add protected fabric + unprotected device support · 38b57f82
    Nicholas Bellinger authored
    This patch adds a new target_core_fabric_ops callback for allowing fabric
    drivers to expose a TPG attribute for signaling when a T10-PI protected
    fabric wants to function with an un-protected device without T10-PI.
    
    This specifically is to allow LIO to perform WRITE_STRIP + READ_INSERT
    operations when functioning with non T10-PI enabled devices, seperate
    from any available hw offloads the fabric supports.
    
    This is done using a new se_sess->sess_prot_type that is set at fabric
    session creation time based upon the TPG attribute.  It currently cannot
    be changed for individual sessions after initial creation.
    
    Also, update existing target_core_sbc.c code to honor sess_prot_type when
    setting up cmd->prot_op + cmd->prot_type assignments.
    
    (Add unlikely and !! boolean conversion in sbc_check_prot - Sagi)
    
    Cc: Martin Petersen <martin.petersen@oracle.com>
    Cc: Sagi Grimberg <sagig@mellanox.com>
    Cc: Christoph Hellwig <hch@lst.de>
    Cc: Doug Gilbert <dgilbert@interlog.com>
    Signed-off-by: default avatarNicholas Bellinger <nab@linux-iscsi.org>
    38b57f82
target_core_sbc.c 37.6 KB