From 46fee78e20d44669584d1e79ea5d6d64a0551976 Mon Sep 17 00:00:00 2001 From: Pawel Wodkowski Date: Fri, 16 Mar 2018 19:38:14 +0100 Subject: [PATCH] bdev/split: add JSON config dump Change-Id: I5d12dfb4227441bc147b9356f874fe0051b3ba0b Signed-off-by: Pawel Wodkowski Reviewed-on: https://review.gerrithub.io/401224 Reviewed-by: Dariusz Stojaczyk Reviewed-by: Jim Harris Tested-by: SPDK Automated Test System Reviewed-by: Ben Walker --- lib/bdev/split/vbdev_split.c | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/lib/bdev/split/vbdev_split.c b/lib/bdev/split/vbdev_split.c index 45fc28529..b9ef5dc21 100644 --- a/lib/bdev/split/vbdev_split.c +++ b/lib/bdev/split/vbdev_split.c @@ -72,12 +72,14 @@ static void vbdev_split_del_config(struct spdk_vbdev_split_config *cfg); static int vbdev_split_init(void); static void vbdev_split_fini(void); static void vbdev_split_examine(struct spdk_bdev *bdev); +static int vbdev_split_config_json(struct spdk_json_write_ctx *w); static struct spdk_bdev_module split_if = { .name = "split", .module_init = vbdev_split_init, .module_fini = vbdev_split_fini, .examine = vbdev_split_examine, + .config_json = vbdev_split_config_json, }; SPDK_BDEV_MODULE_REGISTER(&split_if) @@ -134,10 +136,17 @@ vbdev_split_dump_info_json(void *ctx, struct spdk_json_write_ctx *w) return 0; } +static void +vbdev_split_write_config_json(struct spdk_bdev *bdev, struct spdk_json_write_ctx *w) +{ + /* No config per bdev needed */ +} + static struct spdk_bdev_fn_table vbdev_split_fn_table = { .destruct = vbdev_split_destruct, .submit_request = vbdev_split_submit_request, .dump_info_json = vbdev_split_dump_info_json, + .write_config_json = vbdev_split_write_config_json }; static int @@ -411,6 +420,28 @@ vbdev_split_examine(struct spdk_bdev *bdev) spdk_bdev_module_examine_done(&split_if); } +static int +vbdev_split_config_json(struct spdk_json_write_ctx *w) +{ + struct spdk_vbdev_split_config *cfg; + + TAILQ_FOREACH(cfg, &g_split_config, tailq) { + spdk_json_write_object_begin(w); + + spdk_json_write_named_string(w, "method", "construct_split_vbdev"); + + spdk_json_write_named_object_begin(w, "params"); + spdk_json_write_named_string(w, "base_bdev", cfg->base_bdev); + spdk_json_write_named_uint32(w, "split_count", cfg->split_count); + spdk_json_write_named_uint64(w, "split_size_mb", cfg->split_size_mb); + spdk_json_write_object_end(w); + + spdk_json_write_object_end(w); + } + + return 0; +} + int create_vbdev_split(const char *base_bdev_name, unsigned split_count, uint64_t split_size_mb) {