Target/sbc: Set protection operation and relevant checks

SBC-3 mandates the protection checks that must be
performed in the rdprotect/wrprotect field. Use them.
According to backstore device pi_attributes and
cdb rdprotect/wrprotect field.

(Fix incorrect se_cmd->prot_type -> TARGET_PROT_NORMAL
 comparision in transport_generic_new_cmd - nab)
(Fix missing break in sbc_set_prot_op_checks - DanC + Sagi)

Signed-off-by: Sagi Grimberg <sagig@mellanox.com>
Signed-off-by: Nicholas Bellinger <nab@linux-iscsi.org>
This commit is contained in:
Sagi Grimberg
2014-02-19 17:50:15 +02:00
committed by Nicholas Bellinger
parent acb2bde3e3
commit 19f9361af7
3 changed files with 81 additions and 15 deletions
+7
View File
@@ -463,6 +463,12 @@ enum target_prot_type {
TARGET_DIF_TYPE3_PROT,
};
enum target_core_dif_check {
TARGET_DIF_CHECK_GUARD = 0x1 << 0,
TARGET_DIF_CHECK_APPTAG = 0x1 << 1,
TARGET_DIF_CHECK_REFTAG = 0x1 << 2,
};
struct se_dif_v1_tuple {
__be16 guard_tag;
__be16 app_tag;
@@ -556,6 +562,7 @@ struct se_cmd {
/* DIF related members */
enum target_prot_op prot_op;
enum target_prot_type prot_type;
u8 prot_checks;
u32 prot_length;
u32 reftag_seed;
struct scatterlist *t_prot_sg;