target: More core cleanups from AGrover (round 2)
This patch contains the squashed version of second round of target core
cleanups and simplifications and Andy and Co. It also contains a handful
of fixes to address bugs the original series and other minor cleanups.
Here is the condensed shortlog:
target: Remove unneeded casts to void*
target: Rename get_lun_for_{cmd,tmr} to lookup_{cmd,tmr}_lun
target: Make t_task a member of se_cmd, not a pointer
target: Handle functions returning "-2"
target: Use cmd->se_dev over cmd->se_lun->lun_se_dev
target: Embed qr in struct se_cmd
target: Replace embedded struct se_queue_req with a list_head
target: Rename list_heads that are nodes in struct se_cmd to "*_node"
target: Fold transport_device_setup_cmd() into lookup_{tmr,cmd}_lun()
target: Make t_mem_list and t_mem_list_bidi members of t_task
target: Add comment & cleanup transport_map_sg_to_mem()
target: Remove unneeded checks in transport_free_pages()
(Roland: Fix se_queue_req removal leftovers OOPs)
(nab: Fix transport_lookup_tmr_lun failure case)
(nab: Fix list_empty(&cmd->t_task.t_mem_bidi_list) inversion bugs)
Signed-off-by: Andy Grover <agrover@redhat.com>
Signed-off-by: Roland Dreier <roland@purestorage.com>
Signed-off-by: Nicholas Bellinger <nab@linux-iscsi.org>
This commit is contained in:
committed by
Nicholas Bellinger
parent
f22c119683
commit
5951146dea
@@ -123,7 +123,7 @@ enum se_cmd_flags_table {
|
||||
SCF_SENT_DELAYED_TAS = 0x00020000,
|
||||
SCF_ALUA_NON_OPTIMIZED = 0x00040000,
|
||||
SCF_DELAYED_CMD_FROM_SAM_ATTR = 0x00080000,
|
||||
SCF_PASSTHROUGH_SG_TO_MEM = 0x00100000,
|
||||
SCF_UNUSED = 0x00100000,
|
||||
SCF_PASSTHROUGH_CONTIG_TO_SG = 0x00200000,
|
||||
SCF_PASSTHROUGH_SG_TO_MEM_NOALLOC = 0x00400000,
|
||||
SCF_EMULATE_SYNC_CACHE = 0x00800000,
|
||||
@@ -452,9 +452,9 @@ struct se_transport_task {
|
||||
* and other HW target mode fabric modules.
|
||||
*/
|
||||
struct scatterlist *t_task_pt_sgl;
|
||||
struct list_head *t_mem_list;
|
||||
struct list_head t_mem_list;
|
||||
/* Used for BIDI READ */
|
||||
struct list_head *t_mem_bidi_list;
|
||||
struct list_head t_mem_bidi_list;
|
||||
struct list_head t_task_list;
|
||||
} ____cacheline_aligned;
|
||||
|
||||
@@ -523,9 +523,9 @@ struct se_cmd {
|
||||
atomic_t transport_sent;
|
||||
/* Used for sense data */
|
||||
void *sense_buffer;
|
||||
struct list_head se_delayed_list;
|
||||
struct list_head se_ordered_list;
|
||||
struct list_head se_lun_list;
|
||||
struct list_head se_delayed_node;
|
||||
struct list_head se_ordered_node;
|
||||
struct list_head se_lun_node;
|
||||
struct se_device *se_dev;
|
||||
struct se_dev_entry *se_deve;
|
||||
struct se_device *se_obj_ptr;
|
||||
@@ -534,9 +534,8 @@ struct se_cmd {
|
||||
/* Only used for internal passthrough and legacy TCM fabric modules */
|
||||
struct se_session *se_sess;
|
||||
struct se_tmr_req *se_tmr_req;
|
||||
/* t_task is setup to t_task_backstore in transport_init_se_cmd() */
|
||||
struct se_transport_task *t_task;
|
||||
struct se_transport_task t_task_backstore;
|
||||
struct se_transport_task t_task;
|
||||
struct list_head se_queue_node;
|
||||
struct target_core_fabric_ops *se_tfo;
|
||||
int (*transport_emulate_cdb)(struct se_cmd *);
|
||||
void (*transport_split_cdb)(unsigned long long, u32 *, unsigned char *);
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
#ifndef TARGET_CORE_DEVICE_H
|
||||
#define TARGET_CORE_DEVICE_H
|
||||
|
||||
extern int transport_get_lun_for_cmd(struct se_cmd *, u32);
|
||||
extern int transport_get_lun_for_tmr(struct se_cmd *, u32);
|
||||
extern int transport_lookup_cmd_lun(struct se_cmd *, u32);
|
||||
extern int transport_lookup_tmr_lun(struct se_cmd *, u32);
|
||||
extern struct se_dev_entry *core_get_se_deve_from_rtpi(
|
||||
struct se_node_acl *, u16);
|
||||
extern int core_free_device_list_for_node(struct se_node_acl *,
|
||||
|
||||
@@ -159,7 +159,6 @@ extern struct se_device *transport_add_device_to_core_hba(struct se_hba *,
|
||||
struct se_subsystem_dev *, u32,
|
||||
void *, struct se_dev_limits *,
|
||||
const char *, const char *);
|
||||
extern void transport_device_setup_cmd(struct se_cmd *);
|
||||
extern void transport_init_se_cmd(struct se_cmd *,
|
||||
struct target_core_fabric_ops *,
|
||||
struct se_session *, u32, int, int,
|
||||
|
||||
Reference in New Issue
Block a user