Commit 42aa5a26 authored by Jim Harris's avatar Jim Harris
Browse files

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: default avatarJim 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: default avatarShuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com>
Reviewed-by: default avatarwuzhouhui <wuzhouhui@kingsoft.com>
Reviewed-by: default avatarChangpeng Liu <changpeng.liu@intel.com>
Tested-by: default avatarSPDK CI Jenkins <sys_sgci@intel.com>
parent c0f38051
Loading
Loading
Loading
Loading
+0 −2
Original line number Diff line number Diff line
@@ -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;
};
+4 −6
Original line number Diff line number Diff line
@@ -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);
}
+0 −13
Original line number Diff line number Diff line
@@ -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);