From be50f538e9a5081c61a78faf58c5591c94064633 Mon Sep 17 00:00:00 2001 From: Mike Christie Date: Fri, 23 Jun 2017 01:18:18 -0500 Subject: [PATCH] target: remove g_device_list g_device_list is no longer needed because we now use the idr code for lookups and seaches. Signed-off-by: Mike Christie Reviewed-by: Bart Van Assche Signed-off-by: Nicholas Bellinger --- drivers/target/target_core_device.c | 30 +++++++++++---------------- drivers/target/target_core_internal.h | 3 --- include/target/target_core_base.h | 1 - 3 files changed, 12 insertions(+), 22 deletions(-) diff --git a/drivers/target/target_core_device.c b/drivers/target/target_core_device.c index bd32a0c65961..3ae8fbf01bdf 100644 --- a/drivers/target/target_core_device.c +++ b/drivers/target/target_core_device.c @@ -49,8 +49,8 @@ #include "target_core_pr.h" #include "target_core_ua.h" -DEFINE_MUTEX(g_device_mutex); -LIST_HEAD(g_device_list); +DEFINE_MUTEX(device_mutex); +LIST_HEAD(device_list); static DEFINE_IDR(devices_idr); static struct se_hba *lun0_hba; @@ -773,7 +773,6 @@ struct se_device *target_alloc_device(struct se_hba *hba, const char *name) INIT_LIST_HEAD(&dev->delayed_cmd_list); INIT_LIST_HEAD(&dev->state_list); INIT_LIST_HEAD(&dev->qf_cmd_list); - INIT_LIST_HEAD(&dev->g_dev_node); spin_lock_init(&dev->execute_task_lock); spin_lock_init(&dev->delayed_cmd_lock); spin_lock_init(&dev->dev_reservation_lock); @@ -895,11 +894,11 @@ struct se_device *target_find_device(int id, bool do_depend) { struct se_device *dev; - mutex_lock(&g_device_mutex); + mutex_lock(&device_mutex); dev = idr_find(&devices_idr, id); if (dev && do_depend && target_depend_item(&dev->dev_group.cg_item)) dev = NULL; - mutex_unlock(&g_device_mutex); + mutex_unlock(&device_mutex); return dev; } EXPORT_SYMBOL(target_find_device); @@ -943,9 +942,9 @@ int target_for_each_device(int (*fn)(struct se_device *dev, void *data), iter.fn = fn; iter.data = data; - mutex_lock(&g_device_mutex); + mutex_lock(&device_mutex); ret = idr_for_each(&devices_idr, target_devices_idr_iter, &iter); - mutex_unlock(&g_device_mutex); + mutex_unlock(&device_mutex); return ret; } @@ -964,13 +963,13 @@ int target_configure_device(struct se_device *dev) * Add early so modules like tcmu can use during its * configuration. */ - mutex_lock(&g_device_mutex); + mutex_lock(&device_mutex); /* * Use cyclic to try and avoid collisions with devices * that were recently removed. */ id = idr_alloc_cyclic(&devices_idr, dev, 0, INT_MAX, GFP_KERNEL); - mutex_unlock(&g_device_mutex); + mutex_unlock(&device_mutex); if (id < 0) { ret = -ENOMEM; goto out; @@ -1036,10 +1035,6 @@ int target_configure_device(struct se_device *dev) hba->dev_count++; spin_unlock(&hba->device_lock); - mutex_lock(&g_device_mutex); - list_add_tail(&dev->g_dev_node, &g_device_list); - mutex_unlock(&g_device_mutex); - dev->dev_flags |= DF_CONFIGURED; return 0; @@ -1047,9 +1042,9 @@ int target_configure_device(struct se_device *dev) out_free_alua: core_alua_free_lu_gp_mem(dev); out_free_index: - mutex_lock(&g_device_mutex); + mutex_lock(&device_mutex); idr_remove(&devices_idr, dev->dev_index); - mutex_unlock(&g_device_mutex); + mutex_unlock(&device_mutex); out: se_release_vpd_for_dev(dev); return ret; @@ -1066,10 +1061,9 @@ void target_free_device(struct se_device *dev) dev->transport->destroy_device(dev); - mutex_lock(&g_device_mutex); + mutex_lock(&device_mutex); idr_remove(&devices_idr, dev->dev_index); - list_del(&dev->g_dev_node); - mutex_unlock(&g_device_mutex); + mutex_unlock(&device_mutex); spin_lock(&hba->device_lock); hba->dev_count--; diff --git a/drivers/target/target_core_internal.h b/drivers/target/target_core_internal.h index 1d3ac0238568..f30e8ac13386 100644 --- a/drivers/target/target_core_internal.h +++ b/drivers/target/target_core_internal.h @@ -56,9 +56,6 @@ struct target_fabric_configfs { extern struct t10_alua_lu_gp *default_lu_gp; /* target_core_device.c */ -extern struct mutex g_device_mutex; -extern struct list_head g_device_list; - int core_alloc_rtpi(struct se_lun *lun, struct se_device *dev); struct se_dev_entry *core_get_se_deve_from_rtpi(struct se_node_acl *, u16); void target_pr_kref_release(struct kref *); diff --git a/include/target/target_core_base.h b/include/target/target_core_base.h index 51a92f17352c..516764febeb7 100644 --- a/include/target/target_core_base.h +++ b/include/target/target_core_base.h @@ -796,7 +796,6 @@ struct se_device { struct list_head delayed_cmd_list; struct list_head state_list; struct list_head qf_cmd_list; - struct list_head g_dev_node; /* Pointer to associated SE HBA */ struct se_hba *se_hba; /* T10 Inquiry and VPD WWN Information */