From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([208.118.235.92]:40867) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1TMacp-0002vl-TP for qemu-devel@nongnu.org; Fri, 12 Oct 2012 04:29:47 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1TMaco-0006yk-QT for qemu-devel@nongnu.org; Fri, 12 Oct 2012 04:29:43 -0400 Received: from mx1.redhat.com ([209.132.183.28]:46494) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1TMaco-0006yd-IE for qemu-devel@nongnu.org; Fri, 12 Oct 2012 04:29:42 -0400 Received: from int-mx11.intmail.prod.int.phx2.redhat.com (int-mx11.intmail.prod.int.phx2.redhat.com [10.5.11.24]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id q9C8TfnS004193 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK) for ; Fri, 12 Oct 2012 04:29:41 -0400 Message-ID: <5077D4F1.2030704@redhat.com> Date: Fri, 12 Oct 2012 10:29:37 +0200 From: Paolo Bonzini MIME-Version: 1.0 References: <1349990825-2659-1-git-send-email-lcapitulino@redhat.com> <1349990825-2659-4-git-send-email-lcapitulino@redhat.com> In-Reply-To: <1349990825-2659-4-git-send-email-lcapitulino@redhat.com> Content-Type: text/plain; charset=ISO-8859-15 Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [RFC 3/7] block: bdrv_img_create(): move param printing to qemu-img List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Luiz Capitulino Cc: kwolf@redhat.com, qemu-devel@nongnu.org, armbru@redhat.com Il 11/10/2012 23:27, Luiz Capitulino ha scritto: > bdrv_img_create() is being used by the transaction QMP command and > therefore shouldn't print directly to the user. > > Move the param printing to qemu-img instead. Has the side effect of > only printing it when the bdrv_img_create() call succeeds, otherwise > we can print errors before the action being taken, eg: > > ~/work/virt/ ./qemu-img create -f qcow2 /foo/foo 10G > qemu-img: /foo/foo: error while creating qcow2: No such file or directory > Formatting '/foo/foo', fmt=qcow2 size=10737418240 encryption=off cluster_size=65536 lazy_refcounts=off It is a small regression with -monitor stdio (and also with QMP it doesn't appear anymore in the logs). Do we care? What alternatives exist besides writing a QAPI key-value store and converting the output QEMUOptionParameters to it (which I'm not suggesting to do)? Paolo > Signed-off-by: Luiz Capitulino > --- > block.c | 4 ---- > qemu-img.c | 10 +++++++++- > 2 files changed, 9 insertions(+), 5 deletions(-) > > diff --git a/block.c b/block.c > index 13cf04d..235423e 100644 > --- a/block.c > +++ b/block.c > @@ -4411,10 +4411,6 @@ int bdrv_img_create(const char *filename, const char *fmt, > } > } > > - printf("Formatting '%s', fmt=%s ", filename, fmt); > - print_option_parameters(param); > - puts(""); > - > ret = bdrv_create(drv, filename, param); > > if (ret < 0) { > diff --git a/qemu-img.c b/qemu-img.c > index b841012..ac66459 100644 > --- a/qemu-img.c > +++ b/qemu-img.c > @@ -301,6 +301,7 @@ static int img_create(int argc, char **argv) > const char *filename; > const char *base_filename = NULL; > char *options = NULL; > + QEMUOptionParameter *params = NULL; > > for(;;) { > c = getopt(argc, argv, "F:b:f:he6o:"); > @@ -362,7 +363,14 @@ static int img_create(int argc, char **argv) > } > > ret = bdrv_img_create(filename, fmt, base_filename, base_fmt, > - options, img_size, BDRV_O_FLAGS, NULL); > + options, img_size, BDRV_O_FLAGS, ¶ms); > + if (ret == 0 && params) { > + printf("Formatting '%s', fmt=%s ", filename, fmt); > + print_option_parameters(params); > + free_option_parameters(params); > + puts(""); > + } > + > out: > if (ret) { > return 1; >