From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:45545) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1a9fOa-0002kj-62 for qemu-devel@nongnu.org; Thu, 17 Dec 2015 15:43:29 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1a9fOV-0001ZY-7J for qemu-devel@nongnu.org; Thu, 17 Dec 2015 15:43:28 -0500 Received: from mx1.redhat.com ([209.132.183.28]:34793) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1a9fOU-0001ZU-V7 for qemu-devel@nongnu.org; Thu, 17 Dec 2015 15:43:23 -0500 Received: from int-mx10.intmail.prod.int.phx2.redhat.com (int-mx10.intmail.prod.int.phx2.redhat.com [10.5.11.23]) by mx1.redhat.com (Postfix) with ESMTPS id 93F20C076609 for ; Thu, 17 Dec 2015 20:43:22 +0000 (UTC) References: <1450371004-26866-1-git-send-email-armbru@redhat.com> <1450371004-26866-13-git-send-email-armbru@redhat.com> From: Eric Blake Message-ID: <56731E69.1080200@redhat.com> Date: Thu, 17 Dec 2015 13:43:21 -0700 MIME-Version: 1.0 In-Reply-To: <1450371004-26866-13-git-send-email-armbru@redhat.com> Content-Type: multipart/signed; micalg=pgp-sha256; protocol="application/pgp-signature"; boundary="5k4a7NA4nLthXiiSEjhHXFixkb362RxjR" Subject: Re: [Qemu-devel] [PATCH v2 12/23] error: Use error_prepend() where it makes obvious sense List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Markus Armbruster , qemu-devel@nongnu.org This is an OpenPGP/MIME signed message (RFC 4880 and 3156) --5k4a7NA4nLthXiiSEjhHXFixkb362RxjR Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable On 12/17/2015 09:49 AM, Markus Armbruster wrote: > Done with this Coccinelle semantic patch >=20 > @@ > expression FMT, E1, E2; > expression list ARGS; > @@ > - error_setg(E1, FMT, ARGS, error_get_pretty(E2)); > + error_propagate(E1, E2);/*###*/ > + error_prepend(E1, FMT/*@@@*/, ARGS); >=20 > followed by manual cleanup, first because I can't figure out how to > make Coccinelle transform strings, and second to get rid of now > superfluous error_propagate(). Trying to understand this... >=20 > Signed-off-by: Markus Armbruster > --- > +++ b/block/qed.c > @@ -1611,9 +1611,8 @@ static void bdrv_qed_invalidate_cache(BlockDriver= State *bs, Error **errp) > memset(s, 0, sizeof(BDRVQEDState)); > ret =3D bdrv_qed_open(bs, NULL, bs->open_flags, &local_err); > if (local_err) { > - error_setg(errp, "Could not reopen qed layer: %s", > - error_get_pretty(local_err)); > - error_free(local_err); > + error_propagate(errp, local_err); > + error_prepend(errp, "Could not reopen qed layer: "); =2E..error_propagate() was not always superfluous... > return; > } else if (ret < 0) { > error_setg_errno(errp, -ret, "Could not reopen qed layer"); > diff --git a/hw/block/dataplane/virtio-blk.c b/hw/block/dataplane/virti= o-blk.c > index c57f293..df77ba8 100644 > --- a/hw/block/dataplane/virtio-blk.c > +++ b/hw/block/dataplane/virtio-blk.c > @@ -142,7 +142,6 @@ void virtio_blk_data_plane_create(VirtIODevice *vde= v, VirtIOBlkConf *conf, > Error **errp) > { > VirtIOBlockDataPlane *s; > - Error *local_err =3D NULL; > BusState *qbus =3D BUS(qdev_get_parent_bus(DEVICE(vdev))); > VirtioBusClass *k =3D VIRTIO_BUS_GET_CLASS(qbus); > =20 > @@ -163,11 +162,8 @@ void virtio_blk_data_plane_create(VirtIODevice *vd= ev, VirtIOBlkConf *conf, > /* If dataplane is (re-)enabled while the guest is running there c= ould be > * block jobs that can conflict. > */ > - if (blk_op_is_blocked(conf->conf.blk, BLOCK_OP_TYPE_DATAPLANE, > - &local_err)) { > - error_setg(errp, "cannot start dataplane thread: %s", > - error_get_pretty(local_err)); > - error_free(local_err); > + if (blk_op_is_blocked(conf->conf.blk, BLOCK_OP_TYPE_DATAPLANE, err= p)) { > + error_prepend(errp, "cannot start dataplane thread: "); =2E..but when the only use of a local error was just to rewrite its message, then the local error variable and error_propagate() call can just go away instead. Okay, makes sense now, and no, I don't know how to make Coccinelle do it either. Reviewed-by: Eric Blake --=20 Eric Blake eblake redhat com +1-919-301-3266 Libvirt virtualization library http://libvirt.org --5k4a7NA4nLthXiiSEjhHXFixkb362RxjR Content-Type: application/pgp-signature; name="signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="signature.asc" -----BEGIN PGP SIGNATURE----- Version: GnuPG v2 Comment: Public key at http://people.redhat.com/eblake/eblake.gpg Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/ iQEcBAEBCAAGBQJWcx5pAAoJEKeha0olJ0Nq8YIH/jOtWl99/tzK9xHt6j7tbYBd vPKSAwJ5kITPw54Odf/BSVI7Q1VuZQ3nP+iXCwh+antMY7MVjBRQuFgTyTEjcfyg 3WHjrdkOupNAYK48/AAY14ZS7loTzlX4b+d4PNPrX+ZE2eF0d67PEmkZKKA2Ru0B 7OPjdkaL8JQD0BXZb9bd2XfaDUFHzozlLbDu6/wPzsyOItHv5AEHgKca4MNb1bQ5 XhOEMTFrmrABc8MHzMj+FHlBL1j3XNgQVasQ4B9CDM+Gc3ILzGgUTQJRfwu1tEXa QKR6ZbPu+x8ZDilqwWwVBwgdUT8vvsHqhgbe1Es9ENUlWeua86EY+6bxRQ+twbk= =qGKw -----END PGP SIGNATURE----- --5k4a7NA4nLthXiiSEjhHXFixkb362RxjR--