From 1906b0753ea4d66d3b010d53a79b204ace4a2de8 Mon Sep 17 00:00:00 2001 From: Shuhei Matsumoto Date: Fri, 1 Apr 2022 17:49:41 +0900 Subject: [PATCH] blobcli: Use spdk_for_each_bdev() for bdev list traversal Signed-off-by: Shuhei Matsumoto Change-Id: Ib7ea70c7046241dd6b09f44cb9a3e7ce8496d5c9 Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/12140 Community-CI: Mellanox Build Bot Community-CI: Broadcom CI Tested-by: SPDK CI Jenkins Reviewed-by: Tomasz Zawadzki Reviewed-by: Aleksey Marchuk --- examples/blob/cli/blobcli.c | 26 +++++++++++++++++--------- 1 file changed, 17 insertions(+), 9 deletions(-) diff --git a/examples/blob/cli/blobcli.c b/examples/blob/cli/blobcli.c index d326c87a3..74fd10830 100644 --- a/examples/blob/cli/blobcli.c +++ b/examples/blob/cli/blobcli.c @@ -943,26 +943,34 @@ load_bs(struct cli_context_t *cli_context) spdk_bs_load(bs_dev, optsp, load_bs_cb, cli_context); } +static int +print_bdev(void *ctx, struct spdk_bdev *bdev) +{ + uint32_t *count = ctx; + + (*count)++; + + printf("\tbdev Name: %s\n", spdk_bdev_get_name(bdev)); + printf("\tbdev Product Name: %s\n", + spdk_bdev_get_product_name(bdev)); + return 0; +} + /* * Lists all the blobs on this blobstore. */ static void list_bdevs(struct cli_context_t *cli_context) { - struct spdk_bdev *bdev = NULL; + uint32_t count = 0; printf("\nList bdevs:\n"); - bdev = spdk_bdev_first(); - if (bdev == NULL) { + spdk_for_each_bdev(&count, print_bdev); + + if (count == 0) { printf("Could not find a bdev\n"); } - while (bdev) { - printf("\tbdev Name: %s\n", spdk_bdev_get_name(bdev)); - printf("\tbdev Product Name: %s\n", - spdk_bdev_get_product_name(bdev)); - bdev = spdk_bdev_next(bdev); - } printf("\n"); if (cli_context->cli_mode == CLI_MODE_CMD) {