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