aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/target/target_core_alua.h
diff options
context:
space:
mode:
authorHannes Reinecke <hare@suse.de>2013-12-17 09:18:50 +0100
committerNicholas Bellinger <nab@linux-iscsi.org>2014-01-09 21:48:35 -0800
commit229d4f112fd6d1562b6d5324c4cb8f8d097bac54 (patch)
tree60319c1326b6a7b5e77ea34d85e8cf53f10cadce /drivers/target/target_core_alua.h
parenttarget_core_alua: Referrals infrastructure (diff)
downloadlinux-dev-229d4f112fd6d1562b6d5324c4cb8f8d097bac54.tar.xz
linux-dev-229d4f112fd6d1562b6d5324c4cb8f8d097bac54.zip
target_core_alua: Referrals configfs integration
Referrals need an LBA map, which needs to be kept consistent across all target port groups. So instead of tying the map to the target port groups I've implemented a single attribute containing the entire map. Signed-off-by: Hannes Reinecke <hare@suse.de> Signed-off-by: Nicholas Bellinger <nab@linux-iscsi.org>
Diffstat (limited to 'drivers/target/target_core_alua.h')
-rw-r--r--drivers/target/target_core_alua.h8
1 files changed, 8 insertions, 0 deletions
diff --git a/drivers/target/target_core_alua.h b/drivers/target/target_core_alua.h
index 47950cdc6f8b..0a7d65e80404 100644
--- a/drivers/target/target_core_alua.h
+++ b/drivers/target/target_core_alua.h
@@ -86,6 +86,8 @@ extern struct kmem_cache *t10_alua_lu_gp_cache;
extern struct kmem_cache *t10_alua_lu_gp_mem_cache;
extern struct kmem_cache *t10_alua_tg_pt_gp_cache;
extern struct kmem_cache *t10_alua_tg_pt_gp_mem_cache;
+extern struct kmem_cache *t10_alua_lba_map_cache;
+extern struct kmem_cache *t10_alua_lba_map_mem_cache;
extern sense_reason_t target_emulate_report_target_port_groups(struct se_cmd *);
extern sense_reason_t target_emulate_set_target_port_groups(struct se_cmd *);
@@ -95,6 +97,12 @@ extern int core_alua_do_port_transition(struct t10_alua_tg_pt_gp *,
struct se_device *, struct se_port *,
struct se_node_acl *, int, int);
extern char *core_alua_dump_status(int);
+extern struct t10_alua_lba_map *core_alua_allocate_lba_map(
+ struct list_head *, u64, u64);
+extern int core_alua_allocate_lba_map_mem(struct t10_alua_lba_map *, int, int);
+extern void core_alua_free_lba_map(struct list_head *);
+extern void core_alua_set_lba_map(struct se_device *, struct list_head *,
+ int, int);
extern struct t10_alua_lu_gp *core_alua_allocate_lu_gp(const char *, int);
extern int core_alua_set_lu_gp_id(struct t10_alua_lu_gp *, u16);
extern void core_alua_free_lu_gp(struct t10_alua_lu_gp *);