reduce: remove close callback
Let the application figure out how to close the underlying block device after an init fails or an initialized/loaded volume is closed/destroyed. Signed-off-by: Jim Harris <james.r.harris@intel.com> Change-Id: Id0b9b99c85ed13166ec9a229eaaa0b0eb04289fd Reviewed-on: https://review.gerrithub.io/c/440573 Chandler-Test-Pool: SPDK Automated Test System <sys_sgsw@intel.com> Reviewed-by: Shuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com> Reviewed-by: wuzhouhui <wuzhouhui@kingsoft.com> Reviewed-by: Changpeng Liu <changpeng.liu@intel.com> Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
This commit is contained in:
parent
c0f3805153
commit
42aa5a262b
@ -105,8 +105,6 @@ struct spdk_reduce_backing_dev {
|
|||||||
void (*unmap)(struct spdk_reduce_backing_dev *dev,
|
void (*unmap)(struct spdk_reduce_backing_dev *dev,
|
||||||
uint64_t lba, uint32_t lba_count, struct spdk_reduce_vol_cb_args *args);
|
uint64_t lba, uint32_t lba_count, struct spdk_reduce_vol_cb_args *args);
|
||||||
|
|
||||||
void (*close)(struct spdk_reduce_backing_dev *dev);
|
|
||||||
|
|
||||||
uint64_t blockcnt;
|
uint64_t blockcnt;
|
||||||
uint32_t blocklen;
|
uint32_t blocklen;
|
||||||
};
|
};
|
||||||
|
@ -431,8 +431,8 @@ spdk_reduce_vol_init(struct spdk_reduce_vol_params *params,
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (backing_dev->close == NULL || backing_dev->readv == NULL ||
|
if (backing_dev->readv == NULL || backing_dev->writev == NULL ||
|
||||||
backing_dev->writev == NULL || backing_dev->unmap == NULL) {
|
backing_dev->unmap == NULL) {
|
||||||
SPDK_ERRLOG("backing_dev function pointer not specified\n");
|
SPDK_ERRLOG("backing_dev function pointer not specified\n");
|
||||||
cb_fn(cb_arg, NULL, -EINVAL);
|
cb_fn(cb_arg, NULL, -EINVAL);
|
||||||
return;
|
return;
|
||||||
@ -635,8 +635,8 @@ spdk_reduce_vol_load(struct spdk_reduce_backing_dev *backing_dev,
|
|||||||
struct spdk_reduce_vol *vol;
|
struct spdk_reduce_vol *vol;
|
||||||
struct reduce_init_load_ctx *load_ctx;
|
struct reduce_init_load_ctx *load_ctx;
|
||||||
|
|
||||||
if (backing_dev->close == NULL || backing_dev->readv == NULL ||
|
if (backing_dev->readv == NULL || backing_dev->writev == NULL ||
|
||||||
backing_dev->writev == NULL || backing_dev->unmap == NULL) {
|
backing_dev->unmap == NULL) {
|
||||||
SPDK_ERRLOG("backing_dev function pointer not specified\n");
|
SPDK_ERRLOG("backing_dev function pointer not specified\n");
|
||||||
cb_fn(cb_arg, NULL, -EINVAL);
|
cb_fn(cb_arg, NULL, -EINVAL);
|
||||||
return;
|
return;
|
||||||
@ -698,8 +698,6 @@ spdk_reduce_vol_unload(struct spdk_reduce_vol *vol,
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
vol->backing_dev->close(vol->backing_dev);
|
|
||||||
|
|
||||||
_init_load_cleanup(vol, NULL);
|
_init_load_cleanup(vol, NULL);
|
||||||
cb_fn(cb_arg, 0);
|
cb_fn(cb_arg, 0);
|
||||||
}
|
}
|
||||||
|
@ -45,7 +45,6 @@ static char *g_volatile_pm_buf;
|
|||||||
static size_t g_volatile_pm_buf_len;
|
static size_t g_volatile_pm_buf_len;
|
||||||
static char *g_persistent_pm_buf;
|
static char *g_persistent_pm_buf;
|
||||||
static size_t g_persistent_pm_buf_len;
|
static size_t g_persistent_pm_buf_len;
|
||||||
static bool g_backing_dev_closed;
|
|
||||||
static char *g_backing_dev_buf;
|
static char *g_backing_dev_buf;
|
||||||
static char g_path[REDUCE_PATH_MAX];
|
static char g_path[REDUCE_PATH_MAX];
|
||||||
|
|
||||||
@ -262,12 +261,6 @@ backing_dev_unmap(struct spdk_reduce_backing_dev *backing_dev,
|
|||||||
args->cb_fn(args->cb_arg, 0);
|
args->cb_fn(args->cb_arg, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
|
||||||
backing_dev_close(struct spdk_reduce_backing_dev *backing_dev)
|
|
||||||
{
|
|
||||||
g_backing_dev_closed = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
static void
|
||||||
backing_dev_destroy(struct spdk_reduce_backing_dev *backing_dev)
|
backing_dev_destroy(struct spdk_reduce_backing_dev *backing_dev)
|
||||||
{
|
{
|
||||||
@ -290,7 +283,6 @@ backing_dev_init(struct spdk_reduce_backing_dev *backing_dev, struct spdk_reduce
|
|||||||
backing_dev->readv = backing_dev_readv;
|
backing_dev->readv = backing_dev_readv;
|
||||||
backing_dev->writev = backing_dev_writev;
|
backing_dev->writev = backing_dev_writev;
|
||||||
backing_dev->unmap = backing_dev_unmap;
|
backing_dev->unmap = backing_dev_unmap;
|
||||||
backing_dev->close = backing_dev_close;
|
|
||||||
|
|
||||||
g_backing_dev_buf = calloc(1, size);
|
g_backing_dev_buf = calloc(1, size);
|
||||||
SPDK_CU_ASSERT_FATAL(g_backing_dev_buf != NULL);
|
SPDK_CU_ASSERT_FATAL(g_backing_dev_buf != NULL);
|
||||||
@ -339,10 +331,8 @@ init_md(void)
|
|||||||
CU_ASSERT(spdk_uuid_compare(&uuid, spdk_reduce_vol_get_uuid(g_vol)) == 0);
|
CU_ASSERT(spdk_uuid_compare(&uuid, spdk_reduce_vol_get_uuid(g_vol)) == 0);
|
||||||
|
|
||||||
g_reduce_errno = -1;
|
g_reduce_errno = -1;
|
||||||
g_backing_dev_closed = false;
|
|
||||||
spdk_reduce_vol_unload(g_vol, unload_cb, NULL);
|
spdk_reduce_vol_unload(g_vol, unload_cb, NULL);
|
||||||
CU_ASSERT(g_reduce_errno == 0);
|
CU_ASSERT(g_reduce_errno == 0);
|
||||||
CU_ASSERT(g_backing_dev_closed == true);
|
|
||||||
CU_ASSERT(g_volatile_pm_buf == NULL);
|
CU_ASSERT(g_volatile_pm_buf == NULL);
|
||||||
|
|
||||||
persistent_pm_buf_destroy();
|
persistent_pm_buf_destroy();
|
||||||
@ -374,7 +364,6 @@ _init_backing_dev(uint32_t backing_blocklen)
|
|||||||
CU_ASSERT(memcmp(g_backing_dev_buf, SPDK_REDUCE_SIGNATURE, 8) == 0);
|
CU_ASSERT(memcmp(g_backing_dev_buf, SPDK_REDUCE_SIGNATURE, 8) == 0);
|
||||||
persistent_params = (struct spdk_reduce_vol_params *)(g_backing_dev_buf + 8);
|
persistent_params = (struct spdk_reduce_vol_params *)(g_backing_dev_buf + 8);
|
||||||
CU_ASSERT(memcmp(persistent_params, ¶ms, sizeof(params)) == 0);
|
CU_ASSERT(memcmp(persistent_params, ¶ms, sizeof(params)) == 0);
|
||||||
CU_ASSERT(backing_dev.close != NULL);
|
|
||||||
/* Confirm that the path to the persistent memory metadata file was persisted to
|
/* Confirm that the path to the persistent memory metadata file was persisted to
|
||||||
* the backing device.
|
* the backing device.
|
||||||
*/
|
*/
|
||||||
@ -383,10 +372,8 @@ _init_backing_dev(uint32_t backing_blocklen)
|
|||||||
REDUCE_PATH_MAX) == 0);
|
REDUCE_PATH_MAX) == 0);
|
||||||
|
|
||||||
g_reduce_errno = -1;
|
g_reduce_errno = -1;
|
||||||
g_backing_dev_closed = false;
|
|
||||||
spdk_reduce_vol_unload(g_vol, unload_cb, NULL);
|
spdk_reduce_vol_unload(g_vol, unload_cb, NULL);
|
||||||
CU_ASSERT(g_reduce_errno == 0);
|
CU_ASSERT(g_reduce_errno == 0);
|
||||||
CU_ASSERT(g_backing_dev_closed == true);
|
|
||||||
|
|
||||||
persistent_pm_buf_destroy();
|
persistent_pm_buf_destroy();
|
||||||
backing_dev_destroy(&backing_dev);
|
backing_dev_destroy(&backing_dev);
|
||||||
|
Loading…
Reference in New Issue
Block a user