aboutsummaryrefslogtreecommitdiffstats
path: root/include/target
diff options
context:
space:
mode:
authorSebastian Andrzej Siewior <bigeasy@linutronix.de>2012-01-10 08:16:59 -0500
committerNicholas Bellinger <nab@linux-iscsi.org>2012-04-14 20:40:03 -0400
commitb0d7994660af1601cc26ef7ab748569fdb9c253b (patch)
tree49740bdc2f2284762b1d367295b238c5f3bc931d /include/target
parent58d926187758f76647d68e2f51ce44e6ace81873 (diff)
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.h2
1 files changed, 2 insertions, 0 deletions
diff --git a/include/target/target_core_base.h b/include/target/target_core_base.h
index edb51f6544f8..6a02c99d54a5 100644
--- a/include/target/target_core_base.h
+++ b/include/target/target_core_base.h
@@ -233,6 +233,7 @@ enum tcm_sense_reason_table {
233enum target_sc_flags_table { 233enum target_sc_flags_table {
234 TARGET_SCF_BIDI_OP = 0x01, 234 TARGET_SCF_BIDI_OP = 0x01,
235 TARGET_SCF_ACK_KREF = 0x02, 235 TARGET_SCF_ACK_KREF = 0x02,
236 TARGET_SCF_UNKNOWN_SIZE = 0x04,
236}; 237};
237 238
238/* fabric independent task management function values */ 239/* fabric independent task management function values */
@@ -537,6 +538,7 @@ struct se_cmd {
537 /* Used to signal cmd->se_tfo->check_release_cmd() usage per cmd */ 538 /* Used to signal cmd->se_tfo->check_release_cmd() usage per cmd */
538 unsigned check_release:1; 539 unsigned check_release:1;
539 unsigned cmd_wait_set:1; 540 unsigned cmd_wait_set:1;
541 unsigned unknown_data_length:1;
540 /* See se_cmd_flags_table */ 542 /* See se_cmd_flags_table */
541 u32 se_cmd_flags; 543 u32 se_cmd_flags;
542 u32 se_ordered_id; 544 u32 se_ordered_id;