scsi: target: Remove tpg_list and se_portal_group.se_tpg_node
Maintaining tpg_list without ever iterating over it is not useful. Hence remove tpg_list. This patch does not change the behavior of the SCSI target code. Cc: Mike Christie <mchristie@redhat.com> Cc: Christoph Hellwig <hch@lst.de> Cc: Hannes Reinecke <hare@suse.de> Cc: Nicholas Bellinger <nab@linux-iscsi.org> Link: https://lore.kernel.org/r/20190930232224.58980-1-bvanassche@acm.org Signed-off-by: Bart Van Assche <bvanassche@acm.org> Reviewed-by: Mike Christie <mchristi@redhat.com> Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
This commit is contained in:
Родитель
7cd4cb94cf
Коммит
27f722ccbe
|
@ -32,9 +32,6 @@
|
||||||
|
|
||||||
extern struct se_device *g_lun0_dev;
|
extern struct se_device *g_lun0_dev;
|
||||||
|
|
||||||
static DEFINE_SPINLOCK(tpg_lock);
|
|
||||||
static LIST_HEAD(tpg_list);
|
|
||||||
|
|
||||||
/* __core_tpg_get_initiator_node_acl():
|
/* __core_tpg_get_initiator_node_acl():
|
||||||
*
|
*
|
||||||
* mutex_lock(&tpg->acl_node_mutex); must be held when calling
|
* mutex_lock(&tpg->acl_node_mutex); must be held when calling
|
||||||
|
@ -475,7 +472,6 @@ int core_tpg_register(
|
||||||
se_tpg->se_tpg_wwn = se_wwn;
|
se_tpg->se_tpg_wwn = se_wwn;
|
||||||
atomic_set(&se_tpg->tpg_pr_ref_count, 0);
|
atomic_set(&se_tpg->tpg_pr_ref_count, 0);
|
||||||
INIT_LIST_HEAD(&se_tpg->acl_node_list);
|
INIT_LIST_HEAD(&se_tpg->acl_node_list);
|
||||||
INIT_LIST_HEAD(&se_tpg->se_tpg_node);
|
|
||||||
INIT_LIST_HEAD(&se_tpg->tpg_sess_list);
|
INIT_LIST_HEAD(&se_tpg->tpg_sess_list);
|
||||||
spin_lock_init(&se_tpg->session_lock);
|
spin_lock_init(&se_tpg->session_lock);
|
||||||
mutex_init(&se_tpg->tpg_lun_mutex);
|
mutex_init(&se_tpg->tpg_lun_mutex);
|
||||||
|
@ -494,10 +490,6 @@ int core_tpg_register(
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
spin_lock_bh(&tpg_lock);
|
|
||||||
list_add_tail(&se_tpg->se_tpg_node, &tpg_list);
|
|
||||||
spin_unlock_bh(&tpg_lock);
|
|
||||||
|
|
||||||
pr_debug("TARGET_CORE[%s]: Allocated portal_group for endpoint: %s, "
|
pr_debug("TARGET_CORE[%s]: Allocated portal_group for endpoint: %s, "
|
||||||
"Proto: %d, Portal Tag: %u\n", se_tpg->se_tpg_tfo->fabric_name,
|
"Proto: %d, Portal Tag: %u\n", se_tpg->se_tpg_tfo->fabric_name,
|
||||||
se_tpg->se_tpg_tfo->tpg_get_wwn(se_tpg) ?
|
se_tpg->se_tpg_tfo->tpg_get_wwn(se_tpg) ?
|
||||||
|
@ -519,10 +511,6 @@ int core_tpg_deregister(struct se_portal_group *se_tpg)
|
||||||
tfo->tpg_get_wwn(se_tpg) ? tfo->tpg_get_wwn(se_tpg) : NULL,
|
tfo->tpg_get_wwn(se_tpg) ? tfo->tpg_get_wwn(se_tpg) : NULL,
|
||||||
se_tpg->proto_id, tfo->tpg_get_tag(se_tpg));
|
se_tpg->proto_id, tfo->tpg_get_tag(se_tpg));
|
||||||
|
|
||||||
spin_lock_bh(&tpg_lock);
|
|
||||||
list_del(&se_tpg->se_tpg_node);
|
|
||||||
spin_unlock_bh(&tpg_lock);
|
|
||||||
|
|
||||||
while (atomic_read(&se_tpg->tpg_pr_ref_count) != 0)
|
while (atomic_read(&se_tpg->tpg_pr_ref_count) != 0)
|
||||||
cpu_relax();
|
cpu_relax();
|
||||||
|
|
||||||
|
|
|
@ -467,7 +467,6 @@ int target_xcopy_setup_pt(void)
|
||||||
}
|
}
|
||||||
|
|
||||||
memset(&xcopy_pt_tpg, 0, sizeof(struct se_portal_group));
|
memset(&xcopy_pt_tpg, 0, sizeof(struct se_portal_group));
|
||||||
INIT_LIST_HEAD(&xcopy_pt_tpg.se_tpg_node);
|
|
||||||
INIT_LIST_HEAD(&xcopy_pt_tpg.acl_node_list);
|
INIT_LIST_HEAD(&xcopy_pt_tpg.acl_node_list);
|
||||||
INIT_LIST_HEAD(&xcopy_pt_tpg.tpg_sess_list);
|
INIT_LIST_HEAD(&xcopy_pt_tpg.tpg_sess_list);
|
||||||
|
|
||||||
|
|
|
@ -876,7 +876,6 @@ struct se_portal_group {
|
||||||
/* Spinlock for adding/removing sessions */
|
/* Spinlock for adding/removing sessions */
|
||||||
spinlock_t session_lock;
|
spinlock_t session_lock;
|
||||||
struct mutex tpg_lun_mutex;
|
struct mutex tpg_lun_mutex;
|
||||||
struct list_head se_tpg_node;
|
|
||||||
/* linked list for initiator ACL list */
|
/* linked list for initiator ACL list */
|
||||||
struct list_head acl_node_list;
|
struct list_head acl_node_list;
|
||||||
struct hlist_head tpg_lun_hlist;
|
struct hlist_head tpg_lun_hlist;
|
||||||
|
|
Загрузка…
Ссылка в новой задаче