aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/target/target_core_alua.c2
-rw-r--r--drivers/target/target_core_cdb.c3
-rw-r--r--drivers/target/target_core_cdb.h14
-rw-r--r--drivers/target/target_core_configfs.c3
-rw-r--r--drivers/target/target_core_device.c2
-rw-r--r--drivers/target/target_core_fabric_configfs.c3
-rw-r--r--drivers/target/target_core_fabric_lib.c2
-rw-r--r--drivers/target/target_core_hba.c2
-rw-r--r--drivers/target/target_core_hba.h7
-rw-r--r--drivers/target/target_core_internal.h123
-rw-r--r--drivers/target/target_core_pr.c2
-rw-r--r--drivers/target/target_core_stat.c2
-rw-r--r--drivers/target/target_core_stat.h8
-rw-r--r--drivers/target/target_core_tmr.c1
-rw-r--r--drivers/target/target_core_tpg.c3
-rw-r--r--drivers/target/target_core_transport.c67
-rw-r--r--drivers/target/target_core_ua.c2
-rw-r--r--include/target/target_core_device.h58
-rw-r--r--include/target/target_core_tmr.h4
-rw-r--r--include/target/target_core_tpg.h13
-rw-r--r--include/target/target_core_transport.h35
21 files changed, 170 insertions, 186 deletions
diff --git a/drivers/target/target_core_alua.c b/drivers/target/target_core_alua.c
index 1dcbef499d6a..097eb5a49648 100644
--- a/drivers/target/target_core_alua.c
+++ b/drivers/target/target_core_alua.c
@@ -37,8 +37,8 @@
37#include <target/target_core_fabric_ops.h> 37#include <target/target_core_fabric_ops.h>
38#include <target/target_core_configfs.h> 38#include <target/target_core_configfs.h>
39 39
40#include "target_core_internal.h"
40#include "target_core_alua.h" 41#include "target_core_alua.h"
41#include "target_core_hba.h"
42#include "target_core_ua.h" 42#include "target_core_ua.h"
43 43
44static int core_alua_check_transition(int state, int *primary); 44static int core_alua_check_transition(int state, int *primary);
diff --git a/drivers/target/target_core_cdb.c b/drivers/target/target_core_cdb.c
index 831468b3163d..8f2934fcc68c 100644
--- a/drivers/target/target_core_cdb.c
+++ b/drivers/target/target_core_cdb.c
@@ -31,8 +31,9 @@
31#include <target/target_core_base.h> 31#include <target/target_core_base.h>
32#include <target/target_core_transport.h> 32#include <target/target_core_transport.h>
33#include <target/target_core_fabric_ops.h> 33#include <target/target_core_fabric_ops.h>
34
35#include "target_core_internal.h"
34#include "target_core_ua.h" 36#include "target_core_ua.h"
35#include "target_core_cdb.h"
36 37
37static void 38static void
38target_fill_alua_data(struct se_port *port, unsigned char *buf) 39target_fill_alua_data(struct se_port *port, unsigned char *buf)
diff --git a/drivers/target/target_core_cdb.h b/drivers/target/target_core_cdb.h
deleted file mode 100644
index ad6b1e393001..000000000000
--- a/drivers/target/target_core_cdb.h
+++ /dev/null
@@ -1,14 +0,0 @@
1#ifndef TARGET_CORE_CDB_H
2#define TARGET_CORE_CDB_H
3
4int target_emulate_inquiry(struct se_task *task);
5int target_emulate_readcapacity(struct se_task *task);
6int target_emulate_readcapacity_16(struct se_task *task);
7int target_emulate_modesense(struct se_task *task);
8int target_emulate_request_sense(struct se_task *task);
9int target_emulate_unmap(struct se_task *task);
10int target_emulate_write_same(struct se_task *task);
11int target_emulate_synchronize_cache(struct se_task *task);
12int target_emulate_noop(struct se_task *task);
13
14#endif /* TARGET_CORE_CDB_H */
diff --git a/drivers/target/target_core_configfs.c b/drivers/target/target_core_configfs.c
index 93d4f6a1b798..ac55af56ba12 100644
--- a/drivers/target/target_core_configfs.c
+++ b/drivers/target/target_core_configfs.c
@@ -46,11 +46,10 @@
46#include <target/target_core_configfs.h> 46#include <target/target_core_configfs.h>
47#include <target/configfs_macros.h> 47#include <target/configfs_macros.h>
48 48
49#include "target_core_internal.h"
49#include "target_core_alua.h" 50#include "target_core_alua.h"
50#include "target_core_hba.h"
51#include "target_core_pr.h" 51#include "target_core_pr.h"
52#include "target_core_rd.h" 52#include "target_core_rd.h"
53#include "target_core_stat.h"
54 53
55extern struct t10_alua_lu_gp *default_lu_gp; 54extern struct t10_alua_lu_gp *default_lu_gp;
56 55
diff --git a/drivers/target/target_core_device.c b/drivers/target/target_core_device.c
index 9b8639425472..28ffe0b52bde 100644
--- a/drivers/target/target_core_device.c
+++ b/drivers/target/target_core_device.c
@@ -47,8 +47,8 @@
47#include <target/target_core_transport.h> 47#include <target/target_core_transport.h>
48#include <target/target_core_fabric_ops.h> 48#include <target/target_core_fabric_ops.h>
49 49
50#include "target_core_internal.h"
50#include "target_core_alua.h" 51#include "target_core_alua.h"
51#include "target_core_hba.h"
52#include "target_core_pr.h" 52#include "target_core_pr.h"
53#include "target_core_ua.h" 53#include "target_core_ua.h"
54 54
diff --git a/drivers/target/target_core_fabric_configfs.c b/drivers/target/target_core_fabric_configfs.c
index 09b6f8729f91..fa1e4eb01bc7 100644
--- a/drivers/target/target_core_fabric_configfs.c
+++ b/drivers/target/target_core_fabric_configfs.c
@@ -44,10 +44,9 @@
44#include <target/target_core_configfs.h> 44#include <target/target_core_configfs.h>
45#include <target/configfs_macros.h> 45#include <target/configfs_macros.h>
46 46
47#include "target_core_internal.h"
47#include "target_core_alua.h" 48#include "target_core_alua.h"
48#include "target_core_hba.h"
49#include "target_core_pr.h" 49#include "target_core_pr.h"
50#include "target_core_stat.h"
51 50
52#define TF_CIT_SETUP(_name, _item_ops, _group_ops, _attrs) \ 51#define TF_CIT_SETUP(_name, _item_ops, _group_ops, _attrs) \
53static void target_fabric_setup_##_name##_cit(struct target_fabric_configfs *tf) \ 52static void target_fabric_setup_##_name##_cit(struct target_fabric_configfs *tf) \
diff --git a/drivers/target/target_core_fabric_lib.c b/drivers/target/target_core_fabric_lib.c
index ec4249be617e..dd9ae929dda2 100644
--- a/drivers/target/target_core_fabric_lib.c
+++ b/drivers/target/target_core_fabric_lib.c
@@ -40,7 +40,7 @@
40#include <target/target_core_fabric_ops.h> 40#include <target/target_core_fabric_ops.h>
41#include <target/target_core_configfs.h> 41#include <target/target_core_configfs.h>
42 42
43#include "target_core_hba.h" 43#include "target_core_internal.h"
44#include "target_core_pr.h" 44#include "target_core_pr.h"
45 45
46/* 46/*
diff --git a/drivers/target/target_core_hba.c b/drivers/target/target_core_hba.c
index c68019d6c406..26c1238976cb 100644
--- a/drivers/target/target_core_hba.c
+++ b/drivers/target/target_core_hba.c
@@ -41,7 +41,7 @@
41#include <target/target_core_tpg.h> 41#include <target/target_core_tpg.h>
42#include <target/target_core_transport.h> 42#include <target/target_core_transport.h>
43 43
44#include "target_core_hba.h" 44#include "target_core_internal.h"
45 45
46static LIST_HEAD(subsystem_list); 46static LIST_HEAD(subsystem_list);
47static DEFINE_MUTEX(subsystem_mutex); 47static DEFINE_MUTEX(subsystem_mutex);
diff --git a/drivers/target/target_core_hba.h b/drivers/target/target_core_hba.h
deleted file mode 100644
index bb0fea5f730c..000000000000
--- a/drivers/target/target_core_hba.h
+++ /dev/null
@@ -1,7 +0,0 @@
1#ifndef TARGET_CORE_HBA_H
2#define TARGET_CORE_HBA_H
3
4extern struct se_hba *core_alloc_hba(const char *, u32, u32);
5extern int core_delete_hba(struct se_hba *);
6
7#endif /* TARGET_CORE_HBA_H */
diff --git a/drivers/target/target_core_internal.h b/drivers/target/target_core_internal.h
new file mode 100644
index 000000000000..26f135e94f6e
--- /dev/null
+++ b/drivers/target/target_core_internal.h
@@ -0,0 +1,123 @@
1#ifndef TARGET_CORE_INTERNAL_H
2#define TARGET_CORE_INTERNAL_H
3
4/* target_core_alua.c */
5extern struct t10_alua_lu_gp *default_lu_gp;
6
7/* target_core_cdb.c */
8int target_emulate_inquiry(struct se_task *task);
9int target_emulate_readcapacity(struct se_task *task);
10int target_emulate_readcapacity_16(struct se_task *task);
11int target_emulate_modesense(struct se_task *task);
12int target_emulate_request_sense(struct se_task *task);
13int target_emulate_unmap(struct se_task *task);
14int target_emulate_write_same(struct se_task *task);
15int target_emulate_synchronize_cache(struct se_task *task);
16int target_emulate_noop(struct se_task *task);
17
18/* target_core_device.c */
19struct se_dev_entry *core_get_se_deve_from_rtpi(struct se_node_acl *, u16);
20int core_free_device_list_for_node(struct se_node_acl *,
21 struct se_portal_group *);
22void core_dec_lacl_count(struct se_node_acl *, struct se_cmd *);
23void core_update_device_list_access(u32, u32, struct se_node_acl *);
24int core_update_device_list_for_node(struct se_lun *, struct se_lun_acl *,
25 u32, u32, struct se_node_acl *, struct se_portal_group *, int);
26void core_clear_lun_from_tpg(struct se_lun *, struct se_portal_group *);
27int core_dev_export(struct se_device *, struct se_portal_group *,
28 struct se_lun *);
29void core_dev_unexport(struct se_device *, struct se_portal_group *,
30 struct se_lun *);
31int target_report_luns(struct se_task *);
32void se_release_device_for_hba(struct se_device *);
33void se_release_vpd_for_dev(struct se_device *);
34int se_free_virtual_device(struct se_device *, struct se_hba *);
35int se_dev_check_online(struct se_device *);
36int se_dev_check_shutdown(struct se_device *);
37void se_dev_set_default_attribs(struct se_device *, struct se_dev_limits *);
38int se_dev_set_task_timeout(struct se_device *, u32);
39int se_dev_set_max_unmap_lba_count(struct se_device *, u32);
40int se_dev_set_max_unmap_block_desc_count(struct se_device *, u32);
41int se_dev_set_unmap_granularity(struct se_device *, u32);
42int se_dev_set_unmap_granularity_alignment(struct se_device *, u32);
43int se_dev_set_emulate_dpo(struct se_device *, int);
44int se_dev_set_emulate_fua_write(struct se_device *, int);
45int se_dev_set_emulate_fua_read(struct se_device *, int);
46int se_dev_set_emulate_write_cache(struct se_device *, int);
47int se_dev_set_emulate_ua_intlck_ctrl(struct se_device *, int);
48int se_dev_set_emulate_tas(struct se_device *, int);
49int se_dev_set_emulate_tpu(struct se_device *, int);
50int se_dev_set_emulate_tpws(struct se_device *, int);
51int se_dev_set_enforce_pr_isids(struct se_device *, int);
52int se_dev_set_is_nonrot(struct se_device *, int);
53int se_dev_set_emulate_rest_reord(struct se_device *dev, int);
54int se_dev_set_queue_depth(struct se_device *, u32);
55int se_dev_set_max_sectors(struct se_device *, u32);
56int se_dev_set_optimal_sectors(struct se_device *, u32);
57int se_dev_set_block_size(struct se_device *, u32);
58struct se_lun *core_dev_add_lun(struct se_portal_group *, struct se_hba *,
59 struct se_device *, u32);
60int core_dev_del_lun(struct se_portal_group *, u32);
61struct se_lun *core_get_lun_from_tpg(struct se_portal_group *, u32);
62struct se_lun_acl *core_dev_init_initiator_node_lun_acl(struct se_portal_group *,
63 u32, char *, int *);
64int core_dev_add_initiator_node_lun_acl(struct se_portal_group *,
65 struct se_lun_acl *, u32, u32);
66int core_dev_del_initiator_node_lun_acl(struct se_portal_group *,
67 struct se_lun *, struct se_lun_acl *);
68void core_dev_free_initiator_node_lun_acl(struct se_portal_group *,
69 struct se_lun_acl *lacl);
70int core_dev_setup_virtual_lun0(void);
71void core_dev_release_virtual_lun0(void);
72
73/* target_core_hba.c */
74struct se_hba *core_alloc_hba(const char *, u32, u32);
75int core_delete_hba(struct se_hba *);
76
77/* target_core_tmr.c */
78int core_tmr_lun_reset(struct se_device *, struct se_tmr_req *,
79 struct list_head *, struct se_cmd *);
80
81/* target_core_tpg.c */
82extern struct se_device *g_lun0_dev;
83
84struct se_node_acl *__core_tpg_get_initiator_node_acl(struct se_portal_group *tpg,
85 const char *);
86struct se_node_acl *core_tpg_get_initiator_node_acl(struct se_portal_group *tpg,
87 unsigned char *);
88void core_tpg_add_node_to_devs(struct se_node_acl *, struct se_portal_group *);
89void core_tpg_wait_for_nacl_pr_ref(struct se_node_acl *);
90struct se_lun *core_tpg_pre_addlun(struct se_portal_group *, u32);
91int core_tpg_post_addlun(struct se_portal_group *, struct se_lun *,
92 u32, void *);
93struct se_lun *core_tpg_pre_dellun(struct se_portal_group *, u32, int *);
94int core_tpg_post_dellun(struct se_portal_group *, struct se_lun *);
95
96/* target_core_transport.c */
97extern struct kmem_cache *se_tmr_req_cache;
98
99int init_se_kmem_caches(void);
100void release_se_kmem_caches(void);
101u32 scsi_get_new_index(scsi_index_t);
102void transport_subsystem_check_init(void);
103void transport_cmd_finish_abort(struct se_cmd *, int);
104void __transport_remove_task_from_execute_queue(struct se_task *,
105 struct se_device *);
106unsigned char *transport_dump_cmd_direction(struct se_cmd *);
107void transport_dump_dev_state(struct se_device *, char *, int *);
108void transport_dump_dev_info(struct se_device *, struct se_lun *,
109 unsigned long long, char *, int *);
110void transport_dump_vpd_proto_id(struct t10_vpd *, unsigned char *, int);
111int transport_dump_vpd_assoc(struct t10_vpd *, unsigned char *, int);
112int transport_dump_vpd_ident_type(struct t10_vpd *, unsigned char *, int);
113int transport_dump_vpd_ident(struct t10_vpd *, unsigned char *, int);
114bool target_stop_task(struct se_task *task, unsigned long *flags);
115int transport_clear_lun_from_sessions(struct se_lun *);
116void transport_send_task_abort(struct se_cmd *);
117
118/* target_core_stat.c */
119void target_stat_setup_dev_default_groups(struct se_subsystem_dev *);
120void target_stat_setup_port_default_groups(struct se_lun *);
121void target_stat_setup_mappedlun_default_groups(struct se_lun_acl *);
122
123#endif /* TARGET_CORE_INTERNAL_H */
diff --git a/drivers/target/target_core_pr.c b/drivers/target/target_core_pr.c
index 95dee7074aeb..36fa9a5f1ba6 100644
--- a/drivers/target/target_core_pr.c
+++ b/drivers/target/target_core_pr.c
@@ -40,7 +40,7 @@
40#include <target/target_core_fabric_ops.h> 40#include <target/target_core_fabric_ops.h>
41#include <target/target_core_configfs.h> 41#include <target/target_core_configfs.h>
42 42
43#include "target_core_hba.h" 43#include "target_core_internal.h"
44#include "target_core_pr.h" 44#include "target_core_pr.h"
45#include "target_core_ua.h" 45#include "target_core_ua.h"
46 46
diff --git a/drivers/target/target_core_stat.c b/drivers/target/target_core_stat.c
index 874152aed94a..d2ba9266ff4d 100644
--- a/drivers/target/target_core_stat.c
+++ b/drivers/target/target_core_stat.c
@@ -48,7 +48,7 @@
48#include <target/target_core_configfs.h> 48#include <target/target_core_configfs.h>
49#include <target/configfs_macros.h> 49#include <target/configfs_macros.h>
50 50
51#include "target_core_hba.h" 51#include "target_core_internal.h"
52 52
53#ifndef INITIAL_JIFFIES 53#ifndef INITIAL_JIFFIES
54#define INITIAL_JIFFIES ((unsigned long)(unsigned int) (-300*HZ)) 54#define INITIAL_JIFFIES ((unsigned long)(unsigned int) (-300*HZ))
diff --git a/drivers/target/target_core_stat.h b/drivers/target/target_core_stat.h
deleted file mode 100644
index 86c252f9ea47..000000000000
--- a/drivers/target/target_core_stat.h
+++ /dev/null
@@ -1,8 +0,0 @@
1#ifndef TARGET_CORE_STAT_H
2#define TARGET_CORE_STAT_H
3
4extern void target_stat_setup_dev_default_groups(struct se_subsystem_dev *);
5extern void target_stat_setup_port_default_groups(struct se_lun *);
6extern void target_stat_setup_mappedlun_default_groups(struct se_lun_acl *);
7
8#endif /*** TARGET_CORE_STAT_H ***/
diff --git a/drivers/target/target_core_tmr.c b/drivers/target/target_core_tmr.c
index 684522805a1f..47bc26ba7865 100644
--- a/drivers/target/target_core_tmr.c
+++ b/drivers/target/target_core_tmr.c
@@ -38,6 +38,7 @@
38#include <target/target_core_fabric_ops.h> 38#include <target/target_core_fabric_ops.h>
39#include <target/target_core_configfs.h> 39#include <target/target_core_configfs.h>
40 40
41#include "target_core_internal.h"
41#include "target_core_alua.h" 42#include "target_core_alua.h"
42#include "target_core_pr.h" 43#include "target_core_pr.h"
43 44
diff --git a/drivers/target/target_core_tpg.c b/drivers/target/target_core_tpg.c
index 8ddd133025b9..0a936fae3d23 100644
--- a/drivers/target/target_core_tpg.c
+++ b/drivers/target/target_core_tpg.c
@@ -44,8 +44,7 @@
44#include <target/target_core_transport.h> 44#include <target/target_core_transport.h>
45#include <target/target_core_fabric_ops.h> 45#include <target/target_core_fabric_ops.h>
46 46
47#include "target_core_hba.h" 47#include "target_core_internal.h"
48#include "target_core_stat.h"
49 48
50extern struct se_device *g_lun0_dev; 49extern struct se_device *g_lun0_dev;
51 50
diff --git a/drivers/target/target_core_transport.c b/drivers/target/target_core_transport.c
index 0257658e2e3e..e0ea63dedde3 100644
--- a/drivers/target/target_core_transport.c
+++ b/drivers/target/target_core_transport.c
@@ -52,9 +52,8 @@
52#include <target/target_core_fabric_ops.h> 52#include <target/target_core_fabric_ops.h>
53#include <target/target_core_configfs.h> 53#include <target/target_core_configfs.h>
54 54
55#include "target_core_internal.h"
55#include "target_core_alua.h" 56#include "target_core_alua.h"
56#include "target_core_cdb.h"
57#include "target_core_hba.h"
58#include "target_core_pr.h" 57#include "target_core_pr.h"
59#include "target_core_ua.h" 58#include "target_core_ua.h"
60 59
@@ -212,14 +211,13 @@ u32 scsi_get_new_index(scsi_index_t type)
212 return new_index; 211 return new_index;
213} 212}
214 213
215void transport_init_queue_obj(struct se_queue_obj *qobj) 214static void transport_init_queue_obj(struct se_queue_obj *qobj)
216{ 215{
217 atomic_set(&qobj->queue_cnt, 0); 216 atomic_set(&qobj->queue_cnt, 0);
218 INIT_LIST_HEAD(&qobj->qobj_list); 217 INIT_LIST_HEAD(&qobj->qobj_list);
219 init_waitqueue_head(&qobj->thread_wq); 218 init_waitqueue_head(&qobj->thread_wq);
220 spin_lock_init(&qobj->cmd_queue_lock); 219 spin_lock_init(&qobj->cmd_queue_lock);
221} 220}
222EXPORT_SYMBOL(transport_init_queue_obj);
223 221
224void transport_subsystem_check_init(void) 222void transport_subsystem_check_init(void)
225{ 223{
@@ -896,7 +894,7 @@ void __transport_remove_task_from_execute_queue(struct se_task *task,
896 atomic_dec(&dev->execute_tasks); 894 atomic_dec(&dev->execute_tasks);
897} 895}
898 896
899void transport_remove_task_from_execute_queue( 897static void transport_remove_task_from_execute_queue(
900 struct se_task *task, 898 struct se_task *task,
901 struct se_device *dev) 899 struct se_device *dev)
902{ 900{
@@ -3346,6 +3344,32 @@ static inline void transport_free_pages(struct se_cmd *cmd)
3346} 3344}
3347 3345
3348/** 3346/**
3347 * transport_release_cmd - free a command
3348 * @cmd: command to free
3349 *
3350 * This routine unconditionally frees a command, and reference counting
3351 * or list removal must be done in the caller.
3352 */
3353static void transport_release_cmd(struct se_cmd *cmd)
3354{
3355 BUG_ON(!cmd->se_tfo);
3356
3357 if (cmd->se_tmr_req)
3358 core_tmr_release_req(cmd->se_tmr_req);
3359 if (cmd->t_task_cdb != cmd->__t_task_cdb)
3360 kfree(cmd->t_task_cdb);
3361 /*
3362 * Check if target_wait_for_sess_cmds() is expecting to
3363 * release se_cmd directly here..
3364 */
3365 if (cmd->check_release != 0 && cmd->se_tfo->check_release_cmd)
3366 if (cmd->se_tfo->check_release_cmd(cmd) != 0)
3367 return;
3368
3369 cmd->se_tfo->release_cmd(cmd);
3370}
3371
3372/**
3349 * transport_put_cmd - release a reference to a command 3373 * transport_put_cmd - release a reference to a command
3350 * @cmd: command to release 3374 * @cmd: command to release
3351 * 3375 *
@@ -3870,33 +3894,6 @@ queue_full:
3870 return 0; 3894 return 0;
3871} 3895}
3872 3896
3873/**
3874 * transport_release_cmd - free a command
3875 * @cmd: command to free
3876 *
3877 * This routine unconditionally frees a command, and reference counting
3878 * or list removal must be done in the caller.
3879 */
3880void transport_release_cmd(struct se_cmd *cmd)
3881{
3882 BUG_ON(!cmd->se_tfo);
3883
3884 if (cmd->se_tmr_req)
3885 core_tmr_release_req(cmd->se_tmr_req);
3886 if (cmd->t_task_cdb != cmd->__t_task_cdb)
3887 kfree(cmd->t_task_cdb);
3888 /*
3889 * Check if target_wait_for_sess_cmds() is expecting to
3890 * release se_cmd directly here..
3891 */
3892 if (cmd->check_release != 0 && cmd->se_tfo->check_release_cmd)
3893 if (cmd->se_tfo->check_release_cmd(cmd) != 0)
3894 return;
3895
3896 cmd->se_tfo->release_cmd(cmd);
3897}
3898EXPORT_SYMBOL(transport_release_cmd);
3899
3900void transport_generic_free_cmd(struct se_cmd *cmd, int wait_for_tasks) 3897void transport_generic_free_cmd(struct se_cmd *cmd, int wait_for_tasks)
3901{ 3898{
3902 if (!(cmd->se_cmd_flags & SCF_SE_LUN_CMD)) { 3899 if (!(cmd->se_cmd_flags & SCF_SE_LUN_CMD)) {
@@ -4545,11 +4542,7 @@ void transport_send_task_abort(struct se_cmd *cmd)
4545 cmd->se_tfo->queue_status(cmd); 4542 cmd->se_tfo->queue_status(cmd);
4546} 4543}
4547 4544
4548/* transport_generic_do_tmr(): 4545static int transport_generic_do_tmr(struct se_cmd *cmd)
4549 *
4550 *
4551 */
4552int transport_generic_do_tmr(struct se_cmd *cmd)
4553{ 4546{
4554 struct se_device *dev = cmd->se_dev; 4547 struct se_device *dev = cmd->se_dev;
4555 struct se_tmr_req *tmr = cmd->se_tmr_req; 4548 struct se_tmr_req *tmr = cmd->se_tmr_req;
diff --git a/drivers/target/target_core_ua.c b/drivers/target/target_core_ua.c
index 50a480db7a66..e2ae53c7e088 100644
--- a/drivers/target/target_core_ua.c
+++ b/drivers/target/target_core_ua.c
@@ -35,8 +35,8 @@
35#include <target/target_core_fabric_ops.h> 35#include <target/target_core_fabric_ops.h>
36#include <target/target_core_configfs.h> 36#include <target/target_core_configfs.h>
37 37
38#include "target_core_internal.h"
38#include "target_core_alua.h" 39#include "target_core_alua.h"
39#include "target_core_hba.h"
40#include "target_core_pr.h" 40#include "target_core_pr.h"
41#include "target_core_ua.h" 41#include "target_core_ua.h"
42 42
diff --git a/include/target/target_core_device.h b/include/target/target_core_device.h
index 2be31ff8763b..c6123a49014d 100644
--- a/include/target/target_core_device.h
+++ b/include/target/target_core_device.h
@@ -1,63 +1,9 @@
1#ifndef TARGET_CORE_DEVICE_H 1#ifndef TARGET_CORE_DEVICE_H
2#define TARGET_CORE_DEVICE_H 2#define TARGET_CORE_DEVICE_H
3 3
4
5// external
4extern int transport_lookup_cmd_lun(struct se_cmd *, u32); 6extern int transport_lookup_cmd_lun(struct se_cmd *, u32);
5extern int transport_lookup_tmr_lun(struct se_cmd *, u32); 7extern int transport_lookup_tmr_lun(struct se_cmd *, u32);
6extern struct se_dev_entry *core_get_se_deve_from_rtpi(
7 struct se_node_acl *, u16);
8extern int core_free_device_list_for_node(struct se_node_acl *,
9 struct se_portal_group *);
10extern void core_dec_lacl_count(struct se_node_acl *, struct se_cmd *);
11extern void core_update_device_list_access(u32, u32, struct se_node_acl *);
12extern int core_update_device_list_for_node(struct se_lun *, struct se_lun_acl *, u32,
13 u32, struct se_node_acl *,
14 struct se_portal_group *, int);
15extern void core_clear_lun_from_tpg(struct se_lun *, struct se_portal_group *);
16extern int core_dev_export(struct se_device *, struct se_portal_group *,
17 struct se_lun *);
18extern void core_dev_unexport(struct se_device *, struct se_portal_group *,
19 struct se_lun *);
20extern int target_report_luns(struct se_task *);
21extern void se_release_device_for_hba(struct se_device *);
22extern void se_release_vpd_for_dev(struct se_device *);
23extern void se_clear_dev_ports(struct se_device *);
24extern int se_free_virtual_device(struct se_device *, struct se_hba *);
25extern int se_dev_check_online(struct se_device *);
26extern int se_dev_check_shutdown(struct se_device *);
27extern void se_dev_set_default_attribs(struct se_device *, struct se_dev_limits *);
28extern int se_dev_set_task_timeout(struct se_device *, u32);
29extern int se_dev_set_max_unmap_lba_count(struct se_device *, u32);
30extern int se_dev_set_max_unmap_block_desc_count(struct se_device *, u32);
31extern int se_dev_set_unmap_granularity(struct se_device *, u32);
32extern int se_dev_set_unmap_granularity_alignment(struct se_device *, u32);
33extern int se_dev_set_emulate_dpo(struct se_device *, int);
34extern int se_dev_set_emulate_fua_write(struct se_device *, int);
35extern int se_dev_set_emulate_fua_read(struct se_device *, int);
36extern int se_dev_set_emulate_write_cache(struct se_device *, int);
37extern int se_dev_set_emulate_ua_intlck_ctrl(struct se_device *, int);
38extern int se_dev_set_emulate_tas(struct se_device *, int);
39extern int se_dev_set_emulate_tpu(struct se_device *, int);
40extern int se_dev_set_emulate_tpws(struct se_device *, int);
41extern int se_dev_set_enforce_pr_isids(struct se_device *, int);
42extern int se_dev_set_is_nonrot(struct se_device *, int);
43extern int se_dev_set_emulate_rest_reord(struct se_device *dev, int);
44extern int se_dev_set_queue_depth(struct se_device *, u32);
45extern int se_dev_set_max_sectors(struct se_device *, u32);
46extern int se_dev_set_optimal_sectors(struct se_device *, u32);
47extern int se_dev_set_block_size(struct se_device *, u32);
48extern struct se_lun *core_dev_add_lun(struct se_portal_group *, struct se_hba *,
49 struct se_device *, u32);
50extern int core_dev_del_lun(struct se_portal_group *, u32);
51extern struct se_lun *core_get_lun_from_tpg(struct se_portal_group *, u32);
52extern struct se_lun_acl *core_dev_init_initiator_node_lun_acl(struct se_portal_group *,
53 u32, char *, int *);
54extern int core_dev_add_initiator_node_lun_acl(struct se_portal_group *,
55 struct se_lun_acl *, u32, u32);
56extern int core_dev_del_initiator_node_lun_acl(struct se_portal_group *,
57 struct se_lun *, struct se_lun_acl *);
58extern void core_dev_free_initiator_node_lun_acl(struct se_portal_group *,
59 struct se_lun_acl *lacl);
60extern int core_dev_setup_virtual_lun0(void);
61extern void core_dev_release_virtual_lun0(void);
62 8
63#endif /* TARGET_CORE_DEVICE_H */ 9#endif /* TARGET_CORE_DEVICE_H */
diff --git a/include/target/target_core_tmr.h b/include/target/target_core_tmr.h
index d5876e17d3fb..36b3e0de99b4 100644
--- a/include/target/target_core_tmr.h
+++ b/include/target/target_core_tmr.h
@@ -25,11 +25,7 @@ enum tcm_tmrsp_table {
25 TMR_FUNCTION_REJECTED = 255, 25 TMR_FUNCTION_REJECTED = 255,
26}; 26};
27 27
28extern struct kmem_cache *se_tmr_req_cache;
29
30extern struct se_tmr_req *core_tmr_alloc_req(struct se_cmd *, void *, u8, gfp_t); 28extern struct se_tmr_req *core_tmr_alloc_req(struct se_cmd *, void *, u8, gfp_t);
31extern void core_tmr_release_req(struct se_tmr_req *); 29extern void core_tmr_release_req(struct se_tmr_req *);
32extern int core_tmr_lun_reset(struct se_device *, struct se_tmr_req *,
33 struct list_head *, struct se_cmd *);
34 30
35#endif /* TARGET_CORE_TMR_H */ 31#endif /* TARGET_CORE_TMR_H */
diff --git a/include/target/target_core_tpg.h b/include/target/target_core_tpg.h
index 77e18729c4c1..80ae59fdada3 100644
--- a/include/target/target_core_tpg.h
+++ b/include/target/target_core_tpg.h
@@ -1,17 +1,9 @@
1#ifndef TARGET_CORE_TPG_H 1#ifndef TARGET_CORE_TPG_H
2#define TARGET_CORE_TPG_H 2#define TARGET_CORE_TPG_H
3 3
4extern struct se_node_acl *__core_tpg_get_initiator_node_acl(struct se_portal_group *tpg,
5 const char *);
6extern struct se_node_acl *core_tpg_get_initiator_node_acl(struct se_portal_group *tpg,
7 unsigned char *);
8extern void core_tpg_add_node_to_devs(struct se_node_acl *,
9 struct se_portal_group *);
10extern struct se_node_acl *core_tpg_check_initiator_node_acl( 4extern struct se_node_acl *core_tpg_check_initiator_node_acl(
11 struct se_portal_group *, 5 struct se_portal_group *,
12 unsigned char *); 6 unsigned char *);
13extern void core_tpg_wait_for_nacl_pr_ref(struct se_node_acl *);
14extern void core_tpg_wait_for_mib_ref(struct se_node_acl *);
15extern void core_tpg_clear_object_luns(struct se_portal_group *); 7extern void core_tpg_clear_object_luns(struct se_portal_group *);
16extern struct se_node_acl *core_tpg_add_initiator_node_acl( 8extern struct se_node_acl *core_tpg_add_initiator_node_acl(
17 struct se_portal_group *, 9 struct se_portal_group *,
@@ -26,10 +18,5 @@ extern int core_tpg_register(struct target_core_fabric_ops *,
26 struct se_portal_group *, void *, 18 struct se_portal_group *, void *,
27 int); 19 int);
28extern int core_tpg_deregister(struct se_portal_group *); 20extern int core_tpg_deregister(struct se_portal_group *);
29extern struct se_lun *core_tpg_pre_addlun(struct se_portal_group *, u32);
30extern int core_tpg_post_addlun(struct se_portal_group *, struct se_lun *, u32,
31 void *);
32extern struct se_lun *core_tpg_pre_dellun(struct se_portal_group *, u32, int *);
33extern int core_tpg_post_dellun(struct se_portal_group *, struct se_lun *);
34 21
35#endif /* TARGET_CORE_TPG_H */ 22#endif /* TARGET_CORE_TPG_H */
diff --git a/include/target/target_core_transport.h b/include/target/target_core_transport.h
index dac4f2d859fd..68fe1f2c081c 100644
--- a/include/target/target_core_transport.h
+++ b/include/target/target_core_transport.h
@@ -76,14 +76,8 @@
76 76
77struct se_subsystem_api; 77struct se_subsystem_api;
78 78
79extern int init_se_kmem_caches(void);
80extern void release_se_kmem_caches(void);
81extern u32 scsi_get_new_index(scsi_index_t);
82extern void transport_init_queue_obj(struct se_queue_obj *);
83extern void transport_subsystem_check_init(void);
84extern int transport_subsystem_register(struct se_subsystem_api *); 79extern int transport_subsystem_register(struct se_subsystem_api *);
85extern void transport_subsystem_release(struct se_subsystem_api *); 80extern void transport_subsystem_release(struct se_subsystem_api *);
86extern void transport_load_plugins(void);
87extern struct se_session *transport_init_session(void); 81extern struct se_session *transport_init_session(void);
88extern void __transport_register_session(struct se_portal_group *, 82extern void __transport_register_session(struct se_portal_group *,
89 struct se_node_acl *, 83 struct se_node_acl *,
@@ -94,32 +88,14 @@ extern void transport_register_session(struct se_portal_group *,
94extern void transport_free_session(struct se_session *); 88extern void transport_free_session(struct se_session *);
95extern void transport_deregister_session_configfs(struct se_session *); 89extern void transport_deregister_session_configfs(struct se_session *);
96extern void transport_deregister_session(struct se_session *); 90extern void transport_deregister_session(struct se_session *);
97extern void transport_cmd_finish_abort(struct se_cmd *, int);
98extern void transport_complete_sync_cache(struct se_cmd *, int); 91extern void transport_complete_sync_cache(struct se_cmd *, int);
99extern void transport_complete_task(struct se_task *, int); 92extern void transport_complete_task(struct se_task *, int);
100extern void transport_add_task_to_execute_queue(struct se_task *, 93
101 struct se_task *,
102 struct se_device *);
103extern void transport_remove_task_from_execute_queue(struct se_task *,
104 struct se_device *);
105extern void __transport_remove_task_from_execute_queue(struct se_task *,
106 struct se_device *);
107unsigned char *transport_dump_cmd_direction(struct se_cmd *);
108extern void transport_dump_dev_state(struct se_device *, char *, int *);
109extern void transport_dump_dev_info(struct se_device *, struct se_lun *,
110 unsigned long long, char *, int *);
111extern void transport_dump_vpd_proto_id(struct t10_vpd *,
112 unsigned char *, int);
113extern void transport_set_vpd_proto_id(struct t10_vpd *, unsigned char *); 94extern void transport_set_vpd_proto_id(struct t10_vpd *, unsigned char *);
114extern int transport_dump_vpd_assoc(struct t10_vpd *,
115 unsigned char *, int);
116extern int transport_set_vpd_assoc(struct t10_vpd *, unsigned char *); 95extern int transport_set_vpd_assoc(struct t10_vpd *, unsigned char *);
117extern int transport_dump_vpd_ident_type(struct t10_vpd *,
118 unsigned char *, int);
119extern int transport_set_vpd_ident_type(struct t10_vpd *, unsigned char *); 96extern int transport_set_vpd_ident_type(struct t10_vpd *, unsigned char *);
120extern int transport_dump_vpd_ident(struct t10_vpd *,
121 unsigned char *, int);
122extern int transport_set_vpd_ident(struct t10_vpd *, unsigned char *); 97extern int transport_set_vpd_ident(struct t10_vpd *, unsigned char *);
98
123extern struct se_device *transport_add_device_to_core_hba(struct se_hba *, 99extern struct se_device *transport_add_device_to_core_hba(struct se_hba *,
124 struct se_subsystem_api *, 100 struct se_subsystem_api *,
125 struct se_subsystem_dev *, u32, 101 struct se_subsystem_dev *, u32,
@@ -136,29 +112,22 @@ extern int transport_handle_cdb_direct(struct se_cmd *);
136extern int transport_generic_handle_cdb_map(struct se_cmd *); 112extern int transport_generic_handle_cdb_map(struct se_cmd *);
137extern int transport_generic_handle_data(struct se_cmd *); 113extern int transport_generic_handle_data(struct se_cmd *);
138extern int transport_generic_handle_tmr(struct se_cmd *); 114extern int transport_generic_handle_tmr(struct se_cmd *);
139extern bool target_stop_task(struct se_task *task, unsigned long *flags);
140extern int transport_generic_map_mem_to_cmd(struct se_cmd *cmd, struct scatterlist *, u32, 115extern int transport_generic_map_mem_to_cmd(struct se_cmd *cmd, struct scatterlist *, u32,
141 struct scatterlist *, u32); 116 struct scatterlist *, u32);
142extern int transport_clear_lun_from_sessions(struct se_lun *);
143extern bool transport_wait_for_tasks(struct se_cmd *); 117extern bool transport_wait_for_tasks(struct se_cmd *);
144extern int transport_check_aborted_status(struct se_cmd *, int); 118extern int transport_check_aborted_status(struct se_cmd *, int);
145extern int transport_send_check_condition_and_sense(struct se_cmd *, u8, int); 119extern int transport_send_check_condition_and_sense(struct se_cmd *, u8, int);
146extern void transport_send_task_abort(struct se_cmd *);
147extern void transport_release_cmd(struct se_cmd *);
148extern void transport_generic_free_cmd(struct se_cmd *, int); 120extern void transport_generic_free_cmd(struct se_cmd *, int);
149extern void target_get_sess_cmd(struct se_session *, struct se_cmd *); 121extern void target_get_sess_cmd(struct se_session *, struct se_cmd *);
150extern int target_put_sess_cmd(struct se_session *, struct se_cmd *); 122extern int target_put_sess_cmd(struct se_session *, struct se_cmd *);
151extern void target_splice_sess_cmd_list(struct se_session *); 123extern void target_splice_sess_cmd_list(struct se_session *);
152extern void target_wait_for_sess_cmds(struct se_session *, int); 124extern void target_wait_for_sess_cmds(struct se_session *, int);
153extern void transport_generic_wait_for_cmds(struct se_cmd *, int);
154extern void transport_do_task_sg_chain(struct se_cmd *); 125extern void transport_do_task_sg_chain(struct se_cmd *);
155extern void transport_generic_process_write(struct se_cmd *); 126extern void transport_generic_process_write(struct se_cmd *);
156extern int transport_generic_new_cmd(struct se_cmd *); 127extern int transport_generic_new_cmd(struct se_cmd *);
157extern int transport_generic_do_tmr(struct se_cmd *);
158/* From target_core_alua.c */ 128/* From target_core_alua.c */
159extern int core_alua_check_nonop_delay(struct se_cmd *); 129extern int core_alua_check_nonop_delay(struct se_cmd *);
160/* From target_core_cdb.c */ 130/* From target_core_cdb.c */
161extern int transport_emulate_control_cdb(struct se_task *);
162extern void target_get_task_cdb(struct se_task *task, unsigned char *cdb); 131extern void target_get_task_cdb(struct se_task *task, unsigned char *cdb);
163 132
164/* 133/*