summaryrefslogtreecommitdiffstats
path: root/include/target
diff options
context:
space:
mode:
authorChristoph Hellwig <hch@infradead.org>2012-06-18 00:40:54 +0200
committerNicholas Bellinger <nab@linux-iscsi.org>2012-07-17 02:34:41 +0200
commit6f974e8ce7b3f661910a49c7c2ba095631f341e9 (patch)
tree5698f1ed849b92eec547571594a68183c592b590 /include/target
parenttarget: move sync_cache to struct spc_ops (diff)
downloadlinux-6f974e8ce7b3f661910a49c7c2ba095631f341e9.tar.xz
linux-6f974e8ce7b3f661910a49c7c2ba095631f341e9.zip
target: move write_same to struct spc_ops
Add spc_ops->execute_write_same() caller for ->execute_cmd() setup, and update IBLOCK backends to use it. (nab: add export of spc_get_write_same_sectors symbol) (roland: Carry forward: Fix range calculation in WRITE SAME emulation when num blocks == 0) Signed-off-by: Christoph Hellwig <hch@lst.de> Signed-off-by: Nicholas Bellinger <nab@linux-iscsi.org>
Diffstat (limited to 'include/target')
-rw-r--r--include/target/target_core_backend.h2
1 files changed, 2 insertions, 0 deletions
diff --git a/include/target/target_core_backend.h b/include/target/target_core_backend.h
index 5797b1164c80..fbc6a1b8b99a 100644
--- a/include/target/target_core_backend.h
+++ b/include/target/target_core_backend.h
@@ -42,6 +42,7 @@ struct se_subsystem_api {
struct spc_ops {
int (*execute_rw)(struct se_cmd *cmd);
int (*execute_sync_cache)(struct se_cmd *cmd);
+ int (*execute_write_same)(struct se_cmd *cmd);
};
int transport_subsystem_register(struct se_subsystem_api *);
@@ -55,6 +56,7 @@ void target_complete_cmd(struct se_cmd *, u8);
int sbc_parse_cdb(struct se_cmd *cmd, struct spc_ops *ops);
int spc_parse_cdb(struct se_cmd *cmd, unsigned int *size);
+int spc_get_write_same_sectors(struct se_cmd *cmd);
void transport_set_vpd_proto_id(struct t10_vpd *, unsigned char *);
int transport_set_vpd_assoc(struct t10_vpd *, unsigned char *);