Byte counts should use QAPI type 'size' (uint64_t). BlockDirtyInfo member @count is 'int' (int64_t). bdrv_query_dirty_bitmaps() computes @count from bdrv_get_dirty_count() in uint64_t, then implicitly converts to int64_t. Before the commit before previous, the conversion was in bdrv_get_dirty_count() instead.
Change member @count to 'size'. query-block now reports @count values above 2^63-1 correctly instead of their (negative) two's complement. Signed-off-by: Markus Armbruster <arm...@redhat.com> --- qapi/block-core.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/qapi/block-core.json b/qapi/block-core.json index 1c4a08d..60e1b6f 100644 --- a/qapi/block-core.json +++ b/qapi/block-core.json @@ -418,7 +418,7 @@ # Since: 1.3 ## { 'struct': 'BlockDirtyInfo', - 'data': {'*name': 'str', 'count': 'int', 'granularity': 'size', + 'data': {'*name': 'str', 'count': 'size', 'granularity': 'size', 'status': 'DirtyBitmapStatus'} } ## -- 2.7.5