From 3bd76a3b3af0963a5210b0d676855fa9e9cb88a6 Mon Sep 17 00:00:00 2001 From: Vitaliy Mysak Date: Mon, 24 Dec 2018 23:01:27 +0000 Subject: [PATCH] OCF: add support of write_json_config Add interface function `write_config_json` for OCF bdev Change-Id: I88e77de649752ad5b23277a371e2a3d2fa3767c9 Signed-off-by: Vitaliy Mysak Reviewed-on: https://review.gerrithub.io/c/438176 Reviewed-by: Darek Stojaczyk Reviewed-by: Jim Harris Reviewed-by: Changpeng Liu Tested-by: SPDK CI Jenkins --- lib/bdev/ocf/vbdev_ocf.c | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/lib/bdev/ocf/vbdev_ocf.c b/lib/bdev/ocf/vbdev_ocf.c index de6671b34..899e44542 100644 --- a/lib/bdev/ocf/vbdev_ocf.c +++ b/lib/bdev/ocf/vbdev_ocf.c @@ -400,6 +400,26 @@ vbdev_ocf_dump_config_info(void *opaque, struct spdk_json_write_ctx *w) return 0; } +static void +vbdev_ocf_write_json_config(struct spdk_bdev *bdev, struct spdk_json_write_ctx *w) +{ + struct vbdev_ocf *vbdev = bdev->ctxt; + + spdk_json_write_object_begin(w); + + spdk_json_write_named_string(w, "method", "construct_ocf_bdev"); + + spdk_json_write_named_object_begin(w, "params"); + spdk_json_write_named_string(w, "name", vbdev->name); + spdk_json_write_named_string(w, "mode", + ocf_get_cache_modename(vbdev->cfg.cache.cache_mode)); + spdk_json_write_named_string(w, "cache_bdev_name", vbdev->cache.name); + spdk_json_write_named_string(w, "core_bdev_name", vbdev->core.name); + spdk_json_write_object_end(w); + + spdk_json_write_object_end(w); +} + /* Cache vbdev function table * Used by bdev layer */ static struct spdk_bdev_fn_table cache_dev_fn_table = { @@ -408,6 +428,7 @@ static struct spdk_bdev_fn_table cache_dev_fn_table = { .submit_request = vbdev_ocf_submit_request, .get_io_channel = vbdev_ocf_get_io_channel, .dump_info_json = vbdev_ocf_dump_config_info, + .write_config_json = vbdev_ocf_write_json_config, }; /* Start OCF cache, attach caching device */