diff options
author | Nicholas Bellinger <nab@daterainc.com> | 2013-08-22 15:29:59 -0400 |
---|---|---|
committer | Nicholas Bellinger <nab@linux-iscsi.org> | 2013-09-10 19:48:44 -0400 |
commit | 04b1b7954649767f2ab9bf08cf2457e21d5c7167 (patch) | |
tree | 2dbd495a23948dae6ba4fd60841330dd34a0d391 /drivers/target/target_core_spc.c | |
parent | cbf031f425fd0b30ff10ba83b612753189a6bbbf (diff) |
target: Enable EXTENDED_COPY setup in spc_parse_cdb
Setup up the se_cmd->execute_cmd() pointers for EXTENDED_COPY and
RECEIVE_COPY_RESULTS handling within spc_parse_cdb()
Cc: Christoph Hellwig <hch@lst.de>
Cc: Hannes Reinecke <hare@suse.de>
Cc: Martin Petersen <martin.petersen@oracle.com>
Cc: Chris Mason <chris.mason@fusionio.com>
Cc: Roland Dreier <roland@purestorage.com>
Cc: Zach Brown <zab@redhat.com>
Cc: James Bottomley <JBottomley@Parallels.com>
Cc: Nicholas Bellinger <nab@linux-iscsi.org>
Signed-off-by: Nicholas Bellinger <nab@daterainc.com>
Diffstat (limited to 'drivers/target/target_core_spc.c')
-rw-r--r-- | drivers/target/target_core_spc.c | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/drivers/target/target_core_spc.c b/drivers/target/target_core_spc.c index bd16a93a7a3f..894e83bc223d 100644 --- a/drivers/target/target_core_spc.c +++ b/drivers/target/target_core_spc.c | |||
@@ -35,7 +35,7 @@ | |||
35 | #include "target_core_alua.h" | 35 | #include "target_core_alua.h" |
36 | #include "target_core_pr.h" | 36 | #include "target_core_pr.h" |
37 | #include "target_core_ua.h" | 37 | #include "target_core_ua.h" |
38 | 38 | #include "target_core_xcopy.h" | |
39 | 39 | ||
40 | static void spc_fill_alua_data(struct se_port *port, unsigned char *buf) | 40 | static void spc_fill_alua_data(struct se_port *port, unsigned char *buf) |
41 | { | 41 | { |
@@ -1252,8 +1252,14 @@ spc_parse_cdb(struct se_cmd *cmd, unsigned int *size) | |||
1252 | *size = (cdb[6] << 24) | (cdb[7] << 16) | (cdb[8] << 8) | cdb[9]; | 1252 | *size = (cdb[6] << 24) | (cdb[7] << 16) | (cdb[8] << 8) | cdb[9]; |
1253 | break; | 1253 | break; |
1254 | case EXTENDED_COPY: | 1254 | case EXTENDED_COPY: |
1255 | case READ_ATTRIBUTE: | 1255 | *size = get_unaligned_be32(&cdb[10]); |
1256 | cmd->execute_cmd = target_do_xcopy; | ||
1257 | break; | ||
1256 | case RECEIVE_COPY_RESULTS: | 1258 | case RECEIVE_COPY_RESULTS: |
1259 | *size = get_unaligned_be32(&cdb[10]); | ||
1260 | cmd->execute_cmd = target_do_receive_copy_results; | ||
1261 | break; | ||
1262 | case READ_ATTRIBUTE: | ||
1257 | case WRITE_ATTRIBUTE: | 1263 | case WRITE_ATTRIBUTE: |
1258 | *size = (cdb[10] << 24) | (cdb[11] << 16) | | 1264 | *size = (cdb[10] << 24) | (cdb[11] << 16) | |
1259 | (cdb[12] << 8) | cdb[13]; | 1265 | (cdb[12] << 8) | cdb[13]; |