bdev/split: Use bdev_open_ext() for creation instead of bdev_get_by_name()
Signed-off-by: Shuhei Matsumoto <smatsumoto@nvidia.com> Change-Id: I218816a01ddadd637ea37bfef99745c8580b8033 Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/12074 Community-CI: Broadcom CI <spdk-ci.pdl@broadcom.com> Community-CI: Mellanox Build Bot Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> Reviewed-by: Aleksey Marchuk <alexeymar@mellanox.com> Reviewed-by: Ben Walker <benjamin.walker@intel.com> Reviewed-by: Monica Kenguva <monica.kenguva@intel.com> Reviewed-by: Jim Harris <james.r.harris@intel.com>
This commit is contained in:
parent
e35849764a
commit
18c6e89d9a
@ -50,12 +50,18 @@ static const struct spdk_json_object_decoder rpc_construct_split_decoders[] = {
|
|||||||
{"split_size_mb", offsetof(struct rpc_construct_split, split_size_mb), spdk_json_decode_uint64, true},
|
{"split_size_mb", offsetof(struct rpc_construct_split, split_size_mb), spdk_json_decode_uint64, true},
|
||||||
};
|
};
|
||||||
|
|
||||||
|
static void
|
||||||
|
dummy_bdev_event_cb(enum spdk_bdev_event_type type, struct spdk_bdev *bdev, void *ctx)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
rpc_bdev_split_create(struct spdk_jsonrpc_request *request,
|
rpc_bdev_split_create(struct spdk_jsonrpc_request *request,
|
||||||
const struct spdk_json_val *params)
|
const struct spdk_json_val *params)
|
||||||
{
|
{
|
||||||
struct rpc_construct_split req = {};
|
struct rpc_construct_split req = {};
|
||||||
struct spdk_json_write_ctx *w;
|
struct spdk_json_write_ctx *w;
|
||||||
|
struct spdk_bdev_desc *base_desc;
|
||||||
struct spdk_bdev *base_bdev;
|
struct spdk_bdev *base_bdev;
|
||||||
int rc;
|
int rc;
|
||||||
|
|
||||||
@ -78,13 +84,15 @@ rpc_bdev_split_create(struct spdk_jsonrpc_request *request,
|
|||||||
w = spdk_jsonrpc_begin_result(request);
|
w = spdk_jsonrpc_begin_result(request);
|
||||||
spdk_json_write_array_begin(w);
|
spdk_json_write_array_begin(w);
|
||||||
|
|
||||||
base_bdev = spdk_bdev_get_by_name(req.base_bdev);
|
rc = spdk_bdev_open_ext(req.base_bdev, false, dummy_bdev_event_cb, NULL, &base_desc);
|
||||||
if (base_bdev != NULL) {
|
if (rc == 0) {
|
||||||
struct spdk_bdev_part_base *split_base;
|
struct spdk_bdev_part_base *split_base;
|
||||||
struct bdev_part_tailq *split_base_tailq;
|
struct bdev_part_tailq *split_base_tailq;
|
||||||
struct spdk_bdev_part *split_part;
|
struct spdk_bdev_part *split_part;
|
||||||
struct spdk_bdev *split_bdev;
|
struct spdk_bdev *split_bdev;
|
||||||
|
|
||||||
|
base_bdev = spdk_bdev_desc_get_bdev(base_desc);
|
||||||
|
|
||||||
split_base = vbdev_split_get_part_base(base_bdev);
|
split_base = vbdev_split_get_part_base(base_bdev);
|
||||||
|
|
||||||
assert(split_base != NULL);
|
assert(split_base != NULL);
|
||||||
@ -94,6 +102,8 @@ rpc_bdev_split_create(struct spdk_jsonrpc_request *request,
|
|||||||
split_bdev = spdk_bdev_part_get_bdev(split_part);
|
split_bdev = spdk_bdev_part_get_bdev(split_part);
|
||||||
spdk_json_write_string(w, spdk_bdev_get_name(split_bdev));
|
spdk_json_write_string(w, spdk_bdev_get_name(split_bdev));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
spdk_bdev_close(base_desc);
|
||||||
}
|
}
|
||||||
|
|
||||||
spdk_json_write_array_end(w);
|
spdk_json_write_array_end(w);
|
||||||
|
Loading…
Reference in New Issue
Block a user