diff --git a/block/qapi.c b/block/qapi.c index a32cb79db8e020cfe16aceb2309b423ac5490168..98b1b83bd6a08e54b7249119e5bb9e1fde59ebc9 100644 --- a/block/qapi.c +++ b/block/qapi.c @@ -318,6 +318,11 @@ BlockStats *bdrv_query_stats(const BlockDriverState *bs) s->parent = bdrv_query_stats(bs->file); } + if (bs->backing_hd) { + s->has_backing = true; + s->backing = bdrv_query_stats(bs->backing_hd); + } + return s; } diff --git a/qapi-schema.json b/qapi-schema.json index 35f7b34410fa6cc16400593d809763ceb6d0dc14..a433869962c641293f99ed2718915bd0a412e075 100644 --- a/qapi-schema.json +++ b/qapi-schema.json @@ -1022,15 +1022,17 @@ # # @stats: A @BlockDeviceStats for the device. # -# @parent: #optional This may point to the backing block device if this is a -# a virtual block device. If it's a backing block, this will point -# to the backing file is one is present. +# @parent: #optional This describes the file block device if it has one. +# +# @backing: #optional This describes the backing block device if it has one. +# (Since 2.0) # # Since: 0.14.0 ## { 'type': 'BlockStats', 'data': {'*device': 'str', 'stats': 'BlockDeviceStats', - '*parent': 'BlockStats'} } + '*parent': 'BlockStats', + '*backing': 'BlockStats'} } ## # @query-blockstats: