From nobody Thu Nov 6 03:25:49 2025 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=redhat.com Return-Path: Received: from lists.gnu.org (208.118.235.17 [208.118.235.17]) by mx.zohomail.com with SMTPS id 1539672213180710.3935646823478; Mon, 15 Oct 2018 23:43:33 -0700 (PDT) Received: from localhost ([::1]:56230 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gCJ4S-0002VY-VH for importer@patchew.org; Tue, 16 Oct 2018 02:43:12 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:45960) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gCJ3I-0001eq-Me for qemu-devel@nongnu.org; Tue, 16 Oct 2018 02:42:04 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gCJ3H-00088W-AY for qemu-devel@nongnu.org; Tue, 16 Oct 2018 02:42:00 -0400 Received: from mx1.redhat.com ([209.132.183.28]:53546) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1gCJ37-00079M-PM; Tue, 16 Oct 2018 02:41:50 -0400 Received: from smtp.corp.redhat.com (int-mx08.intmail.prod.int.phx2.redhat.com [10.5.11.23]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id F40C73001922; Tue, 16 Oct 2018 06:41:43 +0000 (UTC) Received: from blackfin.pond.sub.org (ovpn-116-50.ams2.redhat.com [10.36.116.50]) by smtp.corp.redhat.com (Postfix) with ESMTPS id A0D6429377; Tue, 16 Oct 2018 06:41:43 +0000 (UTC) Received: by blackfin.pond.sub.org (Postfix, from userid 1000) id E22D111384D8; Tue, 16 Oct 2018 08:41:41 +0200 (CEST) From: Markus Armbruster To: qemu-devel@nongnu.org Date: Tue, 16 Oct 2018 08:41:41 +0200 Message-Id: <20181016064141.32167-1-armbru@redhat.com> X-Scanned-By: MIMEDefang 2.84 on 10.5.11.23 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.47]); Tue, 16 Oct 2018 06:41:44 +0000 (UTC) X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 209.132.183.28 Subject: [Qemu-devel] [RFC PATCH] block: Clean up bdrv_img_create()'s error reporting X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: kwolf@redhat.com, qemu-block@nongnu.org, mreitz@redhat.com Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail: RDMRC_1 RSF_0 Z_629925259 SPT_0 Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" bdrv_img_create() takes an Error ** argument and used it in the conventional way, except for one place: when qemu_opts_do_parse() fails, it first reports its error to stderr or the HMP monitor with error_report_err(), then error_setg()'s a generic error. When the caller reports that second error similarly, this produces two consecutive error messages on stderr or the HMP monitor. When the caller does something else with it, such as send it via QMP, the first error still goes to stderr or the HMP monitor. Not good. Turn the first message into a prefix for the second. Signed-off-by: Markus Armbruster --- This is RFC because I didn't check whether "caller does something else with it" can actually happen with current code, and I'm not sure the prefix is wanted. I hope we'll answer both questions during review. block.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/block.c b/block.c index 5d51419d21..08aafc20a2 100644 --- a/block.c +++ b/block.c @@ -4803,9 +4803,9 @@ void bdrv_img_create(const char *filename, const char= *fmt, if (options) { qemu_opts_do_parse(opts, options, NULL, &local_err); if (local_err) { - error_report_err(local_err); - local_err =3D NULL; - error_setg(errp, "Invalid options for file format '%s'", fmt); + error_propagate_prepend(errp, local_err, + "Invalid options for file format '%s'", + fmt); goto out; } } --=20 2.17.1