bdev/compress: Replace spdk_bdev_open() by spdk_bdev_open_ext()

This patch is just a drop-in replacement.

Signed-off-by: Shuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com>
Change-Id: Iffb253ba3a46f03f9927c4ba4206376509cbb5fc
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/4566
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Paul Luse <paul.e.luse@intel.com>
Reviewed-by: Aleksey Marchuk <alexeymar@mellanox.com>
Reviewed-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com>
Community-CI: Mellanox Build Bot
This commit is contained in:
Shuhei Matsumoto 2020-10-09 05:23:35 +09:00 committed by Tomasz Zawadzki
parent 01e6b54572
commit 779a6bdf82
2 changed files with 27 additions and 14 deletions

View File

@ -1258,12 +1258,10 @@ bdev_hotremove_vol_unload_cb(void *cb_arg, int reduce_errno)
spdk_bdev_unregister(&comp_bdev->comp_bdev, NULL, NULL);
}
/* Called when the underlying base bdev goes away. */
static void
vbdev_compress_base_bdev_hotremove_cb(void *ctx)
vbdev_compress_base_bdev_hotremove_cb(struct spdk_bdev *bdev_find)
{
struct vbdev_compress *comp_bdev, *tmp;
struct spdk_bdev *bdev_find = ctx;
TAILQ_FOREACH_SAFE(comp_bdev, &g_vbdev_comp, link, tmp) {
if (bdev_find == comp_bdev->base_bdev) {
@ -1273,6 +1271,21 @@ vbdev_compress_base_bdev_hotremove_cb(void *ctx)
}
}
/* Called when the underlying base bdev triggers asynchronous event such as bdev removal. */
static void
vbdev_compress_base_bdev_event_cb(enum spdk_bdev_event_type type, struct spdk_bdev *bdev,
void *event_ctx)
{
switch (type) {
case SPDK_BDEV_EVENT_REMOVE:
vbdev_compress_base_bdev_hotremove_cb(bdev);
break;
default:
SPDK_NOTICELOG("Unsupported bdev event: type %d\n", type);
break;
}
}
/* TODO: determine which parms we want user configurable, HC for now
* params.vol_size
* params.chunk_size
@ -1355,8 +1368,8 @@ vbdev_init_reduce(struct spdk_bdev *bdev, const char *pm_path, uint32_t lb_size)
return -EINVAL;
}
rc = spdk_bdev_open(meta_ctx->base_bdev, true, vbdev_compress_base_bdev_hotremove_cb,
meta_ctx->base_bdev, &meta_ctx->base_desc);
rc = spdk_bdev_open_ext(spdk_bdev_get_name(meta_ctx->base_bdev), true,
vbdev_compress_base_bdev_event_cb, NULL, &meta_ctx->base_desc);
if (rc) {
SPDK_ERRLOG("could not open bdev %s\n", spdk_bdev_get_name(meta_ctx->base_bdev));
free(meta_ctx);
@ -1618,8 +1631,8 @@ vbdev_compress_claim(struct vbdev_compress *comp_bdev)
pthread_mutex_init(&comp_bdev->reduce_lock, NULL);
rc = spdk_bdev_open(comp_bdev->base_bdev, true, vbdev_compress_base_bdev_hotremove_cb,
comp_bdev->base_bdev, &comp_bdev->base_desc);
rc = spdk_bdev_open_ext(spdk_bdev_get_name(comp_bdev->base_bdev), true,
vbdev_compress_base_bdev_event_cb, NULL, &comp_bdev->base_desc);
if (rc) {
SPDK_ERRLOG("could not open bdev %s\n", spdk_bdev_get_name(comp_bdev->base_bdev));
goto error_open;
@ -1752,8 +1765,8 @@ _vbdev_reduce_load_cb(void *ctx)
/* We still want to open and claim the backing device to protect the data until
* either the pm metadata file is recovered or the comp bdev is deleted.
*/
rc = spdk_bdev_open(meta_ctx->base_bdev, true, vbdev_compress_base_bdev_hotremove_cb,
meta_ctx->base_bdev, &meta_ctx->base_desc);
rc = spdk_bdev_open_ext(spdk_bdev_get_name(meta_ctx->base_bdev), true,
vbdev_compress_base_bdev_event_cb, NULL, &meta_ctx->base_desc);
if (rc) {
SPDK_ERRLOG("could not open bdev %s\n", spdk_bdev_get_name(meta_ctx->base_bdev));
free(meta_ctx->comp_bdev.name);
@ -1838,8 +1851,8 @@ vbdev_compress_examine(struct spdk_bdev *bdev)
return;
}
rc = spdk_bdev_open(meta_ctx->base_bdev, false, vbdev_compress_base_bdev_hotremove_cb,
meta_ctx->base_bdev, &meta_ctx->base_desc);
rc = spdk_bdev_open_ext(spdk_bdev_get_name(meta_ctx->base_bdev), false,
vbdev_compress_base_bdev_event_cb, NULL, &meta_ctx->base_desc);
if (rc) {
SPDK_ERRLOG("could not open bdev %s\n", spdk_bdev_get_name(meta_ctx->base_bdev));
free(meta_ctx);

View File

@ -274,9 +274,9 @@ DEFINE_STUB(spdk_bdev_get_name, const char *, (const struct spdk_bdev *bdev), 0)
DEFINE_STUB(spdk_bdev_get_io_channel, struct spdk_io_channel *, (struct spdk_bdev_desc *desc), 0);
DEFINE_STUB_V(spdk_bdev_unregister, (struct spdk_bdev *bdev, spdk_bdev_unregister_cb cb_fn,
void *cb_arg));
DEFINE_STUB(spdk_bdev_open, int, (struct spdk_bdev *bdev, bool write,
spdk_bdev_remove_cb_t remove_cb,
void *remove_ctx, struct spdk_bdev_desc **_desc), 0);
DEFINE_STUB(spdk_bdev_open_ext, int, (const char *bdev_name, bool write,
spdk_bdev_event_cb_t event_cb,
void *event_ctx, struct spdk_bdev_desc **_desc), 0);
DEFINE_STUB(spdk_bdev_module_claim_bdev, int, (struct spdk_bdev *bdev, struct spdk_bdev_desc *desc,
struct spdk_bdev_module *module), 0);
DEFINE_STUB_V(spdk_bdev_module_examine_done, (struct spdk_bdev_module *module));