diff options
author | Nicholas Bellinger <nab@linux-iscsi.org> | 2013-10-07 15:22:15 -0700 |
---|---|---|
committer | Nicholas Bellinger <nab@linux-iscsi.org> | 2013-10-09 01:54:43 -0700 |
commit | 3f7a46c67440a7fa422919ab2059cbab838ca558 (patch) | |
tree | 40b9ad24651ca731c5436705ab80977e5458f3f5 /drivers/target/target_core_xcopy.c | |
parent | 934a138e970e5af73d6f79469a1eb363572abbaa (diff) | |
download | linux-3f7a46c67440a7fa422919ab2059cbab838ca558.tar.gz linux-3f7a46c67440a7fa422919ab2059cbab838ca558.tar.bz2 linux-3f7a46c67440a7fa422919ab2059cbab838ca558.zip |
target: Allow non zero ListID in EXTENDED_COPY parameter list
This patch changes target_do_xcopy() to allow processing of non-zero
ListIDs in EXTENDED_COPY parameter list data, instead of returning
CHECK_CONDITION status.
As the copy offload implementation reports SNLID=1 (Supports No ListID)
in OPERATING PARAMETERS, any ListID value presented by the client is
currently ignored.
Also, properly extract list_id_usage for informational purposes.
Reported-by: Thomas Glanzmann <thomas@glanzmann.de>
Reported-by: Douglas Gilbert <dgilbert@interlog.com>
Cc: Hannes Reinecke <hare@suse.de>
Signed-off-by: Nicholas Bellinger <nab@linux-iscsi.org>
Diffstat (limited to 'drivers/target/target_core_xcopy.c')
-rw-r--r-- | drivers/target/target_core_xcopy.c | 7 |
1 files changed, 2 insertions, 5 deletions
diff --git a/drivers/target/target_core_xcopy.c b/drivers/target/target_core_xcopy.c index 6b9774c1dc6c..fe985559eeb8 100644 --- a/drivers/target/target_core_xcopy.c +++ b/drivers/target/target_core_xcopy.c @@ -911,11 +911,8 @@ sense_reason_t target_do_xcopy(struct se_cmd *se_cmd) } list_id = p[0]; - if (list_id != 0x00) { - pr_err("XCOPY with non zero list_id: 0x%02x\n", list_id); - goto out; - } - list_id_usage = (p[1] & 0x18); + list_id_usage = (p[1] & 0x18) >> 3; + /* * Determine TARGET DESCRIPTOR LIST LENGTH + SEGMENT DESCRIPTOR LIST LENGTH */ |