Message ID | 1502117160-24655-30-git-send-email-armbru@redhat.com |
---|---|
State | New |
Headers | show |
On 08/07/2017 10:45 AM, Markus Armbruster wrote: > 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 <armbru@redhat.com> Assuming there's no "gotcha" here introduced by changing the QAPI, then ACK; but you're the expert there, so I trust you! Reviewed-by: John Snow <jsnow@redhat.com>
John Snow <jsnow@redhat.com> writes: > On 08/07/2017 10:45 AM, Markus Armbruster wrote: >> 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 <armbru@redhat.com> > > Assuming there's no "gotcha" here introduced by changing the QAPI, then > ACK; but you're the expert there, so I trust you! Juan asked the same question on PATCH 15, see my reply there. > Reviewed-by: John Snow <jsnow@redhat.com> Thanks!
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'} } ##
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 <armbru@redhat.com> --- qapi/block-core.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)