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: Jim Harris <james.r.harris@intel.com>
Change-Id: Iff0f14fbe2003448d24f6fb1484f0e95acfe90ff
Reviewed-on: https://review.gerrithub.io/383011
Reviewed-by: Daniel Verkamp <daniel.verkamp@intel.com>
Tested-by: SPDK Automated Test System <sys_sgsw@intel.com>
Reviewed-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com>
This commit is contained in:
Jim Harris 2017-10-18 11:15:56 -07:00 committed by Daniel Verkamp
parent 199e73908d
commit 17218f8f34

View File

@ -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;
}