On 11/25/2015 12:39 AM, Fam Zheng wrote: > A visible improvement is that "filename" is now included in the output > if it's valid. > > Signed-off-by: Fam Zheng <f...@redhat.com> > --- > qemu-img.c | 39 ++++++++++++------- > tests/qemu-iotests/122.out | 96 > ++++++++++++++++++++++++++-------------------- > 2 files changed, 79 insertions(+), 56 deletions(-) >
> @@ -2155,21 +2161,26 @@ static void dump_map_entry(OutputFormat > output_format, MapEntry *e, > } > break; > case OFORMAT_JSON: > - printf("%s{ \"start\": %"PRId64", \"length\": %"PRId64"," > - " \"depth\": %ld," > - " \"zero\": %s, \"data\": %s", > - (e->start == 0 ? "[" : ",\n"), > - e->start, e->length, e->depth, > - e->zero ? "true" : "false", > - e->data ? "true" : "false"); > - if (e->has_offset) { > - printf(", \"offset\": %"PRId64"", e->offset); > - } > - putchar('}'); > + ov = qmp_output_visitor_new(); > + visit_type_MapEntry(qmp_output_get_visitor(ov), > + &e, NULL, &error_abort); > + obj = qmp_output_get_qobject(ov); > + str = qobject_to_json(obj); It would be nice to someday add a visitor that goes directly to json, instead of through an intermediate QObject. But that's not for this series; your conversion here is sane. > @@ -2213,9 +2224,9 @@ static int get_block_status(BlockDriverState *bs, > int64_t sector_num, > e->offset = ret & BDRV_BLOCK_OFFSET_MASK; > e->has_offset = !!(ret & BDRV_BLOCK_OFFSET_VALID); > e->depth = depth; > - if (e->has_offset) { > + if (file && e->has_offset) { > e->has_filename = true; > - e->filename = bs->filename; > + e->filename = file->filename; Does this hunk belong in a different patch? Reviewed-by: Eric Blake <ebl...@redhat.com> -- Eric Blake eblake redhat com +1-919-301-3266 Libvirt virtualization library http://libvirt.org
signature.asc
Description: OpenPGP digital signature