Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit dbc5623e authored by Nicholas Bellinger's avatar Nicholas Bellinger
Browse files

target: transport_subsystem_check_init cleanups



Remove the now unnecessary extra call to transport_subsystem_check_init() in
target_core_register_fabric(), and also merge transport_subsystem_reqmods()
directly into transport_subsystem_check_init().

Reported-by: default avatarChristoph Hellwig <hch@infradead.org>
Signed-off-by: default avatarNicholas Bellinger <nab@linux-iscsi.org>
parent 35e0e757
Loading
Loading
Loading
Loading
+1 −10
Original line number Diff line number Diff line
@@ -131,14 +131,6 @@ static struct config_group *target_core_register_fabric(

	pr_debug("Target_Core_ConfigFS: REGISTER -> group: %p name:"
			" %s\n", group, name);
	/*
	 * Ensure that TCM subsystem plugins are loaded at this point for
	 * using the RAMDISK_DR virtual LUN 0 and all other struct se_port
	 * LUN symlinks.
	 */
	if (transport_subsystem_check_init() < 0)
		return ERR_PTR(-EINVAL);

	/*
	 * Below are some hardcoded request_module() calls to automatically
	 * local fabric modules when the following is called:
@@ -3079,8 +3071,7 @@ static struct config_group *target_core_call_addhbatotarget(
	/*
	 * Load up TCM subsystem plugins if they have not already been loaded.
	 */
	if (transport_subsystem_check_init() < 0)
		return ERR_PTR(-EINVAL);
	transport_subsystem_check_init();

	hba = core_alloc_hba(se_plugin_str, plugin_dep_id, 0);
	if (IS_ERR(hba))
+5 −18
Original line number Diff line number Diff line
@@ -234,10 +234,13 @@ void transport_init_queue_obj(struct se_queue_obj *qobj)
}
EXPORT_SYMBOL(transport_init_queue_obj);

static int transport_subsystem_reqmods(void)
void transport_subsystem_check_init(void)
{
	int ret;

	if (sub_api_initialized)
		return;

	ret = request_module("target_core_iblock");
	if (ret != 0)
		pr_err("Unable to load target_core_iblock\n");
@@ -254,24 +257,8 @@ static int transport_subsystem_reqmods(void)
	if (ret != 0)
		pr_err("Unable to load target_core_stgt\n");

	return 0;
}

int transport_subsystem_check_init(void)
{
	int ret;

	if (sub_api_initialized)
		return 0;
	/*
	 * Request the loading of known TCM subsystem plugins..
	 */
	ret = transport_subsystem_reqmods();
	if (ret < 0)
		return ret;

	sub_api_initialized = 1;
	return 0;
	return;
}

struct se_session *transport_init_session(void)
+1 −1
Original line number Diff line number Diff line
@@ -113,7 +113,7 @@ extern int init_se_kmem_caches(void);
extern void release_se_kmem_caches(void);
extern u32 scsi_get_new_index(scsi_index_t);
extern void transport_init_queue_obj(struct se_queue_obj *);
extern int transport_subsystem_check_init(void);
extern void transport_subsystem_check_init(void);
extern int transport_subsystem_register(struct se_subsystem_api *);
extern void transport_subsystem_release(struct se_subsystem_api *);
extern void transport_load_plugins(void);