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:
Jim Harris 2019-01-12 08:39:40 -07:00
parent c0f3805153
commit 42aa5a262b
3 changed files with 4 additions and 21 deletions

View File

@ -105,8 +105,6 @@ struct spdk_reduce_backing_dev {
void (*unmap)(struct spdk_reduce_backing_dev *dev,
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;
uint32_t blocklen;
};

View File

@ -431,8 +431,8 @@ spdk_reduce_vol_init(struct spdk_reduce_vol_params *params,
return;
}
if (backing_dev->close == NULL || backing_dev->readv == NULL ||
backing_dev->writev == NULL || backing_dev->unmap == NULL) {
if (backing_dev->readv == NULL || backing_dev->writev == NULL ||
backing_dev->unmap == NULL) {
SPDK_ERRLOG("backing_dev function pointer not specified\n");
cb_fn(cb_arg, NULL, -EINVAL);
return;
@ -635,8 +635,8 @@ spdk_reduce_vol_load(struct spdk_reduce_backing_dev *backing_dev,
struct spdk_reduce_vol *vol;
struct reduce_init_load_ctx *load_ctx;
if (backing_dev->close == NULL || backing_dev->readv == NULL ||
backing_dev->writev == NULL || backing_dev->unmap == NULL) {
if (backing_dev->readv == NULL || backing_dev->writev == NULL ||
backing_dev->unmap == NULL) {
SPDK_ERRLOG("backing_dev function pointer not specified\n");
cb_fn(cb_arg, NULL, -EINVAL);
return;
@ -698,8 +698,6 @@ spdk_reduce_vol_unload(struct spdk_reduce_vol *vol,
return;
}
vol->backing_dev->close(vol->backing_dev);
_init_load_cleanup(vol, NULL);
cb_fn(cb_arg, 0);
}

View File

@ -45,7 +45,6 @@ static char *g_volatile_pm_buf;
static size_t g_volatile_pm_buf_len;
static char *g_persistent_pm_buf;
static size_t g_persistent_pm_buf_len;
static bool g_backing_dev_closed;
static char *g_backing_dev_buf;
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);
}
static void
backing_dev_close(struct spdk_reduce_backing_dev *backing_dev)
{
g_backing_dev_closed = true;
}
static void
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->writev = backing_dev_writev;
backing_dev->unmap = backing_dev_unmap;
backing_dev->close = backing_dev_close;
g_backing_dev_buf = calloc(1, size);
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);
g_reduce_errno = -1;
g_backing_dev_closed = false;
spdk_reduce_vol_unload(g_vol, unload_cb, NULL);
CU_ASSERT(g_reduce_errno == 0);
CU_ASSERT(g_backing_dev_closed == true);
CU_ASSERT(g_volatile_pm_buf == NULL);
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);
persistent_params = (struct spdk_reduce_vol_params *)(g_backing_dev_buf + 8);
CU_ASSERT(memcmp(persistent_params, &params, sizeof(params)) == 0);
CU_ASSERT(backing_dev.close != NULL);
/* Confirm that the path to the persistent memory metadata file was persisted to
* the backing device.
*/
@ -383,10 +372,8 @@ _init_backing_dev(uint32_t backing_blocklen)
REDUCE_PATH_MAX) == 0);
g_reduce_errno = -1;
g_backing_dev_closed = false;
spdk_reduce_vol_unload(g_vol, unload_cb, NULL);
CU_ASSERT(g_reduce_errno == 0);
CU_ASSERT(g_backing_dev_closed == true);
persistent_pm_buf_destroy();
backing_dev_destroy(&backing_dev);