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:
parent
01e6b54572
commit
779a6bdf82
@ -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);
|
||||
|
@ -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));
|
||||
|
Loading…
x
Reference in New Issue
Block a user