From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:46027) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1a1oNm-0007n8-CX for qemu-devel@nongnu.org; Wed, 25 Nov 2015 23:42:11 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1a1oNl-0000Ge-C7 for qemu-devel@nongnu.org; Wed, 25 Nov 2015 23:42:10 -0500 Date: Thu, 26 Nov 2015 12:41:58 +0800 From: Fam Zheng Message-ID: <20151126044158.GF14630@ad.usersys.redhat.com> References: <1448437153-27090-1-git-send-email-famz@redhat.com> <1448437153-27090-14-git-send-email-famz@redhat.com> <5655D6F7.30707@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <5655D6F7.30707@redhat.com> Subject: Re: [Qemu-devel] [PATCH v2 13/14] qemu-img: Use QAPI visitor to generate JSON List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Eric Blake Cc: Kevin Wolf , qemu-block@nongnu.org, Jeff Cody , Peter Lieven , qemu-devel@nongnu.org, Markus Armbruster , Stefan Hajnoczi , Paolo Bonzini On Wed, 11/25 08:42, Eric Blake wrote: > 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 > > --- > > 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 > Yes, I can split this into a separate patch. Fam