diff options
author | Peter Krempa <pkrempa@redhat.com> | 2020-01-20 09:50:49 +0100 |
---|---|---|
committer | Max Reitz <mreitz@redhat.com> | 2020-02-20 16:43:42 +0100 |
commit | facda5443f5a8676fb635b82ac1046ac6b6a67ce (patch) | |
tree | 4309b8f137bf448d3ee569befa64b63d0e1b1f81 /block/qapi.c | |
parent | b0c4cf21b0f26533e4aa6ca1930b2c9f52371bfa (diff) | |
download | qemu-facda5443f5a8676fb635b82ac1046ac6b6a67ce.zip qemu-facda5443f5a8676fb635b82ac1046ac6b6a67ce.tar.gz qemu-facda5443f5a8676fb635b82ac1046ac6b6a67ce.tar.bz2 |
qapi: Allow getting flat output from 'query-named-block-nodes'
When a management application manages node names there's no reason to
recurse into backing images in the output of query-named-block-nodes.
Add a parameter to the command which will return just the top level
structs.
Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Message-Id: <4470f8c779abc404dcf65e375db195cd91a80651.1579509782.git.pkrempa@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
[mreitz: Fixed coding style]
Signed-off-by: Max Reitz <mreitz@redhat.com>
Diffstat (limited to 'block/qapi.c')
-rw-r--r-- | block/qapi.c | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/block/qapi.c b/block/qapi.c index 9a5d0c9..3f09477 100644 --- a/block/qapi.c +++ b/block/qapi.c @@ -42,7 +42,9 @@ #include "qemu/cutils.h" BlockDeviceInfo *bdrv_block_device_info(BlockBackend *blk, - BlockDriverState *bs, Error **errp) + BlockDriverState *bs, + bool flat, + Error **errp) { ImageInfo **p_image_info; BlockDriverState *bs0; @@ -156,6 +158,11 @@ BlockDeviceInfo *bdrv_block_device_info(BlockBackend *blk, return NULL; } + /* stop gathering data for flat output */ + if (flat) { + break; + } + if (bs0->drv && bs0->backing) { info->backing_file_depth++; bs0 = bs0->backing->bs; @@ -389,7 +396,7 @@ static void bdrv_query_info(BlockBackend *blk, BlockInfo **p_info, if (bs && bs->drv) { info->has_inserted = true; - info->inserted = bdrv_block_device_info(blk, bs, errp); + info->inserted = bdrv_block_device_info(blk, bs, false, errp); if (info->inserted == NULL) { goto err; } |