From d163fc1820f22b0c4dce7333a78b6ee4ff6c4713 Mon Sep 17 00:00:00 2001 From: Shuhei Matsumoto Date: Thu, 15 Oct 2020 09:05:43 +0900 Subject: [PATCH] app/spdk_dd: Use spdk_bdev_open_ext() instead of spdk_bdev_open() This is a drop-in replacement. Signed-off-by: Shuhei Matsumoto Change-Id: Icf8e90fee4a3ffc70f68e346cabbfc87591bab73 Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/4726 Tested-by: SPDK CI Jenkins Reviewed-by: Jim Harris Reviewed-by: Tomasz Zawadzki Reviewed-by: Aleksey Marchuk --- app/spdk_dd/spdk_dd.c | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/app/spdk_dd/spdk_dd.c b/app/spdk_dd/spdk_dd.c index c9f2dd117..69beece3c 100644 --- a/app/spdk_dd/spdk_dd.c +++ b/app/spdk_dd/spdk_dd.c @@ -682,27 +682,27 @@ dd_open_file(struct dd_target *target, const char *fname, int flags, uint64_t sk } } +static void +dd_bdev_event_cb(enum spdk_bdev_event_type type, struct spdk_bdev *bdev, + void *event_ctx) +{ + SPDK_NOTICELOG("Unsupported bdev event: type %d\n", type); +} + static int dd_open_bdev(struct dd_target *target, const char *bdev_name, uint64_t skip_blocks) { int rc; target->type = DD_TARGET_TYPE_BDEV; - target->u.bdev.bdev = spdk_bdev_get_by_name(bdev_name); - if (target->u.bdev.bdev == NULL) { - SPDK_ERRLOG("Could not find bdev %s\n", bdev_name); - return -EINVAL; - } - target->block_size = spdk_bdev_get_block_size(target->u.bdev.bdev); - target->total_size = spdk_bdev_get_num_blocks(target->u.bdev.bdev) * target->block_size; - - rc = spdk_bdev_open(target->u.bdev.bdev, true, NULL, NULL, &target->u.bdev.desc); + rc = spdk_bdev_open_ext(bdev_name, true, dd_bdev_event_cb, NULL, &target->u.bdev.desc); if (rc < 0) { SPDK_ERRLOG("Could not open bdev %s: %s\n", bdev_name, strerror(-rc)); return rc; } + target->u.bdev.bdev = spdk_bdev_desc_get_bdev(target->u.bdev.desc); target->open = true; target->u.bdev.ch = spdk_bdev_get_io_channel(target->u.bdev.desc); @@ -712,6 +712,9 @@ dd_open_bdev(struct dd_target *target, const char *bdev_name, uint64_t skip_bloc return -ENOMEM; } + target->block_size = spdk_bdev_get_block_size(target->u.bdev.bdev); + target->total_size = spdk_bdev_get_num_blocks(target->u.bdev.bdev) * target->block_size; + g_opts.queue_depth = spdk_min(g_opts.queue_depth, (target->total_size / g_opts.io_unit_size) - skip_blocks + 1);