reduce: close backing dev during unload
Signed-off-by: Jim Harris <james.r.harris@intel.com> Change-Id: Id94095d2b7069a811ac63123ddd8c5d94f4b53a7 Reviewed-on: https://review.gerrithub.io/432502 Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> Chandler-Test-Pool: SPDK Automated Test System <sys_sgsw@intel.com> Reviewed-by: Changpeng Liu <changpeng.liu@intel.com> Reviewed-by: Shuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com> Reviewed-by: Ben Walker <benjamin.walker@intel.com>
This commit is contained in:
parent
3981ba698b
commit
d912dba2cb
@ -205,6 +205,12 @@ spdk_reduce_vol_init(struct spdk_reduce_vol_params *params,
|
||||
return;
|
||||
}
|
||||
|
||||
if (backing_dev->close == NULL) {
|
||||
SPDK_ERRLOG("backing_dev function pointer not specified\n");
|
||||
cb_fn(cb_arg, NULL, -EINVAL);
|
||||
return;
|
||||
}
|
||||
|
||||
vol = calloc(1, sizeof(*vol));
|
||||
if (vol == NULL) {
|
||||
cb_fn(cb_arg, NULL, -ENOMEM);
|
||||
@ -243,6 +249,8 @@ spdk_reduce_vol_unload(struct spdk_reduce_vol *vol,
|
||||
vol->pm_file.close(&vol->pm_file);
|
||||
}
|
||||
|
||||
vol->backing_dev->close(vol->backing_dev);
|
||||
|
||||
free(vol);
|
||||
cb_fn(cb_arg, 0);
|
||||
}
|
||||
|
@ -43,6 +43,7 @@ static struct spdk_reduce_vol *g_vol;
|
||||
static int g_ziperrno;
|
||||
static char *g_volatile_pm_buf;
|
||||
static char *g_persistent_pm_buf;
|
||||
static bool g_backing_dev_closed;
|
||||
|
||||
static void
|
||||
sync_pm_buf(const void *addr, size_t length)
|
||||
@ -240,11 +241,18 @@ init_failure(void)
|
||||
pm_file_destroy();
|
||||
}
|
||||
|
||||
static void
|
||||
backing_dev_close(struct spdk_reduce_backing_dev *backing_dev)
|
||||
{
|
||||
g_backing_dev_closed = true;
|
||||
}
|
||||
|
||||
static void
|
||||
backing_dev_init(struct spdk_reduce_backing_dev *backing_dev, struct spdk_reduce_vol_params *params)
|
||||
{
|
||||
backing_dev->blocklen = params->backing_io_unit_size;
|
||||
backing_dev->blockcnt = spdk_reduce_get_backing_device_size(params) / backing_dev->blocklen;
|
||||
backing_dev->close = backing_dev_close;
|
||||
}
|
||||
|
||||
static void
|
||||
@ -274,8 +282,10 @@ init_md(void)
|
||||
CU_ASSERT(memcmp(persistent_params, ¶ms, sizeof(params)) == 0);
|
||||
|
||||
g_ziperrno = -1;
|
||||
g_backing_dev_closed = false;
|
||||
spdk_reduce_vol_unload(g_vol, unload_cb, NULL);
|
||||
CU_ASSERT(g_ziperrno == 0);
|
||||
CU_ASSERT(g_backing_dev_closed == true);
|
||||
CU_ASSERT(g_volatile_pm_buf == NULL);
|
||||
|
||||
pm_file_destroy();
|
||||
|
Loading…
Reference in New Issue
Block a user