diff options
author | Sebastian Andrzej Siewior <bigeasy@linutronix.de> | 2012-01-10 14:16:59 +0100 |
---|---|---|
committer | Nicholas Bellinger <nab@linux-iscsi.org> | 2012-04-14 17:40:03 -0700 |
commit | b0d7994660af1601cc26ef7ab748569fdb9c253b (patch) | |
tree | 49740bdc2f2284762b1d367295b238c5f3bc931d /include/target | |
parent | 58d926187758f76647d68e2f51ce44e6ace81873 (diff) | |
download | op-kernel-dev-b0d7994660af1601cc26ef7ab748569fdb9c253b.zip op-kernel-dev-b0d7994660af1601cc26ef7ab748569fdb9c253b.tar.gz |
target: add unknown size flag to target_submit_cmd()
The UASP protocol does not inform the target device upfront how much
data it should expect so we have to learn in from the CDB. So in order
to handle this case, add a TARGET_SCF_UNKNOWN_SIZE to target_submit_cmd()
and perform an explictly assignment for se_cmd->data_length from the
extracted CDB size in transport_generic_cmd_sequencer().
Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Signed-off-by: Nicholas Bellinger <nab@linux-iscsi.org>
Diffstat (limited to 'include/target')
-rw-r--r-- | include/target/target_core_base.h | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/include/target/target_core_base.h b/include/target/target_core_base.h index edb51f6..6a02c99d 100644 --- a/include/target/target_core_base.h +++ b/include/target/target_core_base.h @@ -233,6 +233,7 @@ enum tcm_sense_reason_table { enum target_sc_flags_table { TARGET_SCF_BIDI_OP = 0x01, TARGET_SCF_ACK_KREF = 0x02, + TARGET_SCF_UNKNOWN_SIZE = 0x04, }; /* fabric independent task management function values */ @@ -537,6 +538,7 @@ struct se_cmd { /* Used to signal cmd->se_tfo->check_release_cmd() usage per cmd */ unsigned check_release:1; unsigned cmd_wait_set:1; + unsigned unknown_data_length:1; /* See se_cmd_flags_table */ u32 se_cmd_flags; u32 se_ordered_id; |