From 3f41a8e5068f2e7650bfce3bbada349286251424 Mon Sep 17 00:00:00 2001 From: Sebastian Basierski Date: Thu, 7 Dec 2017 11:40:18 +0100 Subject: [PATCH] bdev: Return aliases list through get_bdevs Change-Id: Ic0cdcf088ebd5053f2e69ad2e607ee825d96fcb6 Signed-off-by: Sebastian Basierski Reviewed-on: https://review.gerrithub.io/390202 Tested-by: SPDK Automated Test System Reviewed-by: Maciej Szwed Reviewed-by: Jim Harris Reviewed-by: Ben Walker Reviewed-by: Daniel Verkamp Reviewed-by: Tomasz Zawadzki --- include/spdk_internal/bdev.h | 8 ++++++++ lib/bdev/bdev.c | 6 ++++++ lib/bdev/rpc/bdev_rpc.c | 11 +++++++++++ 3 files changed, 25 insertions(+) diff --git a/include/spdk_internal/bdev.h b/include/spdk_internal/bdev.h index f8dbb8994..fac00ec4f 100644 --- a/include/spdk_internal/bdev.h +++ b/include/spdk_internal/bdev.h @@ -429,6 +429,14 @@ int spdk_bdev_alias_add(struct spdk_bdev *bdev, const char *alias); */ int spdk_bdev_alias_del(struct spdk_bdev *bdev, const char *alias); +/** + * Get pointer to block device aliases list. + * + * \param bdev Block device to query. + * \return Pointer to bdev aliases list. + */ +const struct spdk_bdev_aliases_list *spdk_bdev_get_aliases(const struct spdk_bdev *bdev); + /** * Allocate a buffer for given bdev_io. Allocation will happen * only if the bdev_io has no assigned SGL yet. The buffer will be diff --git a/lib/bdev/bdev.c b/lib/bdev/bdev.c index 41533634a..7b17753ac 100644 --- a/lib/bdev/bdev.c +++ b/lib/bdev/bdev.c @@ -1020,6 +1020,12 @@ spdk_bdev_get_product_name(const struct spdk_bdev *bdev) return bdev->product_name; } +const struct spdk_bdev_aliases_list * +spdk_bdev_get_aliases(const struct spdk_bdev *bdev) +{ + return &bdev->aliases; +} + uint32_t spdk_bdev_get_block_size(const struct spdk_bdev *bdev) { diff --git a/lib/bdev/rpc/bdev_rpc.c b/lib/bdev/rpc/bdev_rpc.c index 6d07e389c..f7ff25d17 100644 --- a/lib/bdev/rpc/bdev_rpc.c +++ b/lib/bdev/rpc/bdev_rpc.c @@ -40,11 +40,22 @@ static void spdk_rpc_dump_bdev_info(struct spdk_json_write_ctx *w, struct spdk_bdev *bdev) { + struct spdk_bdev_alias *tmp; + spdk_json_write_object_begin(w); spdk_json_write_name(w, "name"); spdk_json_write_string(w, spdk_bdev_get_name(bdev)); + spdk_json_write_name(w, "aliases"); + spdk_json_write_array_begin(w); + + TAILQ_FOREACH(tmp, spdk_bdev_get_aliases(bdev), tailq) { + spdk_json_write_string(w, tmp->alias); + } + + spdk_json_write_array_end(w); + spdk_json_write_name(w, "product_name"); spdk_json_write_string(w, spdk_bdev_get_product_name(bdev));