Commit 17218f8f authored by Jim Harris's avatar Jim Harris Committed by Daniel Verkamp
Browse files

lvol: add internal function for freeing spdk_lvol_store



Currently this is just a free(), but a future patch will
also remove spdk_lvol_stores from a common list.

Signed-off-by: default avatarJim Harris <james.r.harris@intel.com>
Change-Id: Iff0f14fbe2003448d24f6fb1484f0e95acfe90ff
Reviewed-on: https://review.gerrithub.io/383011


Reviewed-by: default avatarDaniel Verkamp <daniel.verkamp@intel.com>
Tested-by: default avatarSPDK Automated Test System <sys_sgsw@intel.com>
Reviewed-by: default avatarTomasz Zawadzki <tomasz.zawadzki@intel.com>
parent 199e7390
Loading
Loading
Loading
Loading
+19 −13
Original line number Diff line number Diff line
@@ -48,6 +48,12 @@ divide_round_up(size_t num, size_t divisor)
	return (num + divisor - 1) / divisor;
}

static void
_spdk_lvs_free(struct spdk_lvol_store *lvs)
{
	free(lvs);
}

static void
_spdk_lvol_open_cb(void *cb_arg, struct spdk_blob *blob, int lvolerrno)
{
@@ -178,7 +184,7 @@ _spdk_close_super_cb(void *cb_arg, int lvolerrno)

	if (lvolerrno != 0) {
		SPDK_INFOLOG(SPDK_TRACE_LVOL, "Could not close super blob\n");
		free(lvs);
		_spdk_lvs_free(lvs);
		spdk_bs_unload(bs, _spdk_bs_unload_with_error_cb, req);
		return;
	}
@@ -194,7 +200,7 @@ _spdk_close_super_blob_with_error_cb(void *cb_arg, int lvolerrno)
	struct spdk_lvol_store *lvs = req->lvol_store;
	struct spdk_blob_store *bs = lvs->blobstore;

	free(lvs);
	_spdk_lvs_free(lvs);

	spdk_bs_unload(bs, _spdk_bs_unload_with_error_cb, req);
}
@@ -211,7 +217,7 @@ _spdk_lvs_read_uuid(void *cb_arg, struct spdk_blob *blob, int lvolerrno)

	if (lvolerrno != 0) {
		SPDK_INFOLOG(SPDK_TRACE_LVOL, "Could not open super blob\n");
		free(lvs);
		_spdk_lvs_free(lvs);
		spdk_bs_unload(bs, _spdk_bs_unload_with_error_cb, req);
		return;
	}
@@ -243,7 +249,7 @@ _spdk_lvs_open_super(void *cb_arg, spdk_blob_id blobid, int lvolerrno)

	if (lvolerrno != 0) {
		SPDK_INFOLOG(SPDK_TRACE_LVOL, "Super blob not found\n");
		free(lvs);
		_spdk_lvs_free(lvs);
		spdk_bs_unload(bs, _spdk_bs_unload_with_error_cb, req);
		return;
	}
@@ -319,7 +325,7 @@ _spdk_super_create_close_cb(void *cb_arg, int lvolerrno)
	if (lvolerrno < 0) {
		SPDK_ERRLOG("Lvol store init failed: could not close super blob\n");
		req->cb_fn(req->cb_arg, NULL, lvolerrno);
		free(lvs);
		_spdk_lvs_free(lvs);
		free(req);
		return;
	}
@@ -338,7 +344,7 @@ _spdk_super_blob_set_cb(void *cb_arg, int lvolerrno)
	if (lvolerrno < 0) {
		req->cb_fn(req->cb_arg, NULL, lvolerrno);
		SPDK_ERRLOG("Lvol store init failed: could not set uuid for super blob\n");
		free(lvs);
		_spdk_lvs_free(lvs);
		free(req);
		return;
	}
@@ -357,7 +363,7 @@ _spdk_super_blob_init_cb(void *cb_arg, int lvolerrno)
	if (lvolerrno < 0) {
		req->cb_fn(req->cb_arg, NULL, lvolerrno);
		SPDK_ERRLOG("Lvol store init failed: could not set super blob\n");
		free(lvs);
		_spdk_lvs_free(lvs);
		free(req);
		return;
	}
@@ -377,7 +383,7 @@ _spdk_super_blob_create_open_cb(void *cb_arg, struct spdk_blob *blob, int lvoler
	if (lvolerrno < 0) {
		req->cb_fn(req->cb_arg, NULL, lvolerrno);
		SPDK_ERRLOG("Lvol store init failed: could not open super blob\n");
		free(lvs);
		_spdk_lvs_free(lvs);
		free(req);
		return;
	}
@@ -398,7 +404,7 @@ _spdk_super_blob_create_cb(void *cb_arg, spdk_blob_id blobid, int lvolerrno)
	if (lvolerrno < 0) {
		req->cb_fn(req->cb_arg, NULL, lvolerrno);
		SPDK_ERRLOG("Lvol store init failed: could not create super blob\n");
		free(lvs);
		_spdk_lvs_free(lvs);
		free(req);
		return;
	}
@@ -418,7 +424,7 @@ _spdk_lvs_init_cb(void *cb_arg, struct spdk_blob_store *bs, int lvserrno)
		assert(bs == NULL);
		lvs_req->cb_fn(lvs_req->cb_arg, NULL, lvserrno);
		SPDK_ERRLOG("Lvol store init failed: could not initialize blobstore\n");
		free(lvs);
		_spdk_lvs_free(lvs);
		free(lvs_req);
		return;
	}
@@ -479,7 +485,7 @@ spdk_lvs_init(struct spdk_bs_dev *bs_dev, struct spdk_lvs_opts *o,

	lvs_req = calloc(1, sizeof(*lvs_req));
	if (!lvs_req) {
		free(lvs);
		_spdk_lvs_free(lvs);
		SPDK_ERRLOG("Cannot alloc memory for lvol store request pointer\n");
		return -ENOMEM;
	}
@@ -545,7 +551,7 @@ spdk_lvs_unload(struct spdk_lvol_store *lvs, spdk_lvs_op_complete cb_fn,

	SPDK_INFOLOG(SPDK_TRACE_LVOL, "Unloading lvol store\n");
	spdk_bs_unload(lvs->blobstore, _lvs_unload_cb, lvs_req);
	free(lvs);
	_spdk_lvs_free(lvs);

	return 0;
}
@@ -608,7 +614,7 @@ spdk_lvs_destroy(struct spdk_lvol_store *lvs, bool unmap_device, spdk_lvs_op_com

	SPDK_INFOLOG(SPDK_TRACE_LVOL, "Destroying lvol store\n");
	spdk_bs_destroy(lvs->blobstore, unmap_device, _lvs_destroy_cb, lvs_req);
	free(lvs);
	_spdk_lvs_free(lvs);

	return 0;
}