Skip to content
  • Sagi Grimberg's avatar
    SCSI/libiscsi: Add check_protection callback for transports · 55e51eda
    Sagi Grimberg authored
    
    
    iSCSI needs to be at least aware that a task involves protection
    information.  In case it does, after the transaction completed libiscsi
    will ask the transport to check the protection status of the
    transaction.
    
    Unlike transport errors, DIF errors should not prevent successful
    completion of the transaction from the transport point of view, but
    should be escelated to scsi mid-layer when constructing the scsi
    result and sense data.
    
    check_protection routine will return the ascq corresponding to the DIF
    error that occured (or 0 if no error happened).
    
    return ascq:
    - 0x1: GUARD_CHECK_FAILED
    - 0x2: APPTAG_CHECK_FAILED
    - 0x3: REFTAG_CHECK_FAILED
    
    Signed-off-by: default avatarSagi Grimberg <sagig@mellanox.com>
    Signed-off-by: default avatarAlex Tabachnik <alext@mellanox.com>
    Signed-off-by: default avatarRoland Dreier <roland@purestorage.com>
    55e51eda