aboutsummaryrefslogtreecommitdiff
path: root/block
diff options
context:
space:
mode:
authorKevin Wolf <kwolf@redhat.com>2018-07-27 16:07:07 +0200
committerKevin Wolf <kwolf@redhat.com>2018-07-30 15:35:37 +0200
commit5a9cb5a97f1e519f249d9ec482d498b78296b51d (patch)
treeb655c8aae4475e2b0f1283dbad3c43e8599f87c2 /block
parent34fa110e424e9a6a9b7e0274c3d4bfee766eb7ed (diff)
block/qapi: Add 'qdev' field to query-blockstats result
Like for query-block, the client needs to identify which BlockBackend the returned data is for. Anonymous BlockBackends are identified by the device model they are attached to. Add a 'qdev' field that contains the qdev ID or QOM path of the attached device model. Signed-off-by: Kevin Wolf <kwolf@redhat.com> Reviewed-by: Eric Blake <eblake@redhat.com>
Diffstat (limited to 'block')
-rw-r--r--block/qapi.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/block/qapi.c b/block/qapi.c
index e12968fec8..50f867d634 100644
--- a/block/qapi.c
+++ b/block/qapi.c
@@ -597,11 +597,21 @@ BlockStatsList *qmp_query_blockstats(bool has_query_nodes,
BlockStatsList *info = g_malloc0(sizeof(*info));
AioContext *ctx = blk_get_aio_context(blk);
BlockStats *s;
+ char *qdev;
aio_context_acquire(ctx);
s = bdrv_query_bds_stats(blk_bs(blk), true);
s->has_device = true;
s->device = g_strdup(blk_name(blk));
+
+ qdev = blk_get_attached_dev_id(blk);
+ if (qdev && *qdev) {
+ s->has_qdev = true;
+ s->qdev = qdev;
+ } else {
+ g_free(qdev);
+ }
+
bdrv_query_blk_stats(s->stats, blk);
aio_context_release(ctx);