app/spdk_dd: Use spdk_bdev_open_ext() instead of spdk_bdev_open()

This is a drop-in replacement.

Signed-off-by: Shuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com>
Change-Id: Icf8e90fee4a3ffc70f68e346cabbfc87591bab73
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/4726
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Jim Harris <james.r.harris@intel.com>
Reviewed-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com>
Reviewed-by: Aleksey Marchuk <alexeymar@mellanox.com>
This commit is contained in:
Shuhei Matsumoto 2020-10-15 09:05:43 +09:00 committed by Tomasz Zawadzki
parent cda1d2cf11
commit d163fc1820

View File

@ -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 static int
dd_open_bdev(struct dd_target *target, const char *bdev_name, uint64_t skip_blocks) dd_open_bdev(struct dd_target *target, const char *bdev_name, uint64_t skip_blocks)
{ {
int rc; int rc;
target->type = DD_TARGET_TYPE_BDEV; 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); rc = spdk_bdev_open_ext(bdev_name, true, dd_bdev_event_cb, NULL, &target->u.bdev.desc);
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);
if (rc < 0) { if (rc < 0) {
SPDK_ERRLOG("Could not open bdev %s: %s\n", bdev_name, strerror(-rc)); SPDK_ERRLOG("Could not open bdev %s: %s\n", bdev_name, strerror(-rc));
return rc; return rc;
} }
target->u.bdev.bdev = spdk_bdev_desc_get_bdev(target->u.bdev.desc);
target->open = true; target->open = true;
target->u.bdev.ch = spdk_bdev_get_io_channel(target->u.bdev.desc); 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; 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, g_opts.queue_depth = spdk_min(g_opts.queue_depth,
(target->total_size / g_opts.io_unit_size) - skip_blocks + 1); (target->total_size / g_opts.io_unit_size) - skip_blocks + 1);