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:
parent
199e73908d
commit
17218f8f34
@ -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;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user