From 17218f8f34e73a5f418c66951fe95d5c45f30826 Mon Sep 17 00:00:00 2001 From: Jim Harris Date: Wed, 18 Oct 2017 11:15:56 -0700 Subject: [PATCH] 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 Change-Id: Iff0f14fbe2003448d24f6fb1484f0e95acfe90ff Reviewed-on: https://review.gerrithub.io/383011 Reviewed-by: Daniel Verkamp Tested-by: SPDK Automated Test System Reviewed-by: Tomasz Zawadzki --- lib/lvol/lvol.c | 32 +++++++++++++++++++------------- 1 file changed, 19 insertions(+), 13 deletions(-) diff --git a/lib/lvol/lvol.c b/lib/lvol/lvol.c index 4821a45a6..7938de53b 100644 --- a/lib/lvol/lvol.c +++ b/lib/lvol/lvol.c @@ -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; }