[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH v3 12/24] error: Use error_prepend() where it makes
From: |
Markus Armbruster |
Subject: |
[Qemu-devel] [PATCH v3 12/24] error: Use error_prepend() where it makes obvious sense |
Date: |
Fri, 18 Dec 2015 16:35:15 +0100 |
Done with this Coccinelle semantic patch
@@
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);
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().
We now use or propagate the original error whole instead of just its
message obtained with error_get_pretty(). This avoids suppressing its
hint (see commit 50b7b00), but I can't see how the errors touched in
this commit could come with hints. It also improves the message
printed with &error_abort when we screw up (see commit 1e9b65b).
Signed-off-by: Markus Armbruster <address@hidden>
Reviewed-by: Eric Blake <address@hidden>
---
block.c | 19 ++++++++-----------
block/qcow2.c | 5 ++---
block/qed.c | 5 ++---
hw/block/dataplane/virtio-blk.c | 8 ++------
hw/scsi/vhost-scsi.c | 6 ++----
hw/usb/bus.c | 6 +++---
6 files changed, 19 insertions(+), 30 deletions(-)
diff --git a/block.c b/block.c
index 4b40cb2..32bd889 100644
--- a/block.c
+++ b/block.c
@@ -1223,14 +1223,12 @@ int bdrv_open_backing_file(BlockDriverState *bs, QDict
*options, Error **errp)
assert(bs->backing == NULL);
ret = bdrv_open_inherit(&backing_hd,
*backing_filename ? backing_filename : NULL,
- NULL, options, 0, bs, &child_backing, &local_err);
+ NULL, options, 0, bs, &child_backing, errp);
if (ret < 0) {
bdrv_unref(backing_hd);
backing_hd = NULL;
bs->open_flags |= BDRV_O_NO_BACKING;
- error_setg(errp, "Could not open backing file: %s",
- error_get_pretty(local_err));
- error_free(local_err);
+ error_prepend(errp, "Could not open backing file: ");
goto free_exit;
}
@@ -1333,12 +1331,11 @@ int bdrv_append_temp_snapshot(BlockDriverState *bs, int
flags, Error **errp)
opts = qemu_opts_create(bdrv_qcow2.create_opts, NULL, 0,
&error_abort);
qemu_opt_set_number(opts, BLOCK_OPT_SIZE, total_size, &error_abort);
- ret = bdrv_create(&bdrv_qcow2, tmp_filename, opts, &local_err);
+ ret = bdrv_create(&bdrv_qcow2, tmp_filename, opts, errp);
qemu_opts_del(opts);
if (ret < 0) {
- error_setg(errp, "Could not create temporary overlay '%s': %s",
- tmp_filename, error_get_pretty(local_err));
- error_free(local_err);
+ error_prepend(errp, "Could not create temporary overlay '%s': ",
+ tmp_filename);
goto out;
}
@@ -3482,9 +3479,9 @@ bool bdrv_op_is_blocked(BlockDriverState *bs, BlockOpType
op, Error **errp)
if (!QLIST_EMPTY(&bs->op_blockers[op])) {
blocker = QLIST_FIRST(&bs->op_blockers[op]);
if (errp) {
- error_setg(errp, "Node '%s' is busy: %s",
- bdrv_get_device_or_node_name(bs),
- error_get_pretty(blocker->reason));
+ *errp = error_copy(blocker->reason);
+ error_prepend(errp, "Node '%s' is busy: ",
+ bdrv_get_device_or_node_name(bs));
}
return true;
}
diff --git a/block/qcow2.c b/block/qcow2.c
index 5b59fa3..a07531e 100644
--- a/block/qcow2.c
+++ b/block/qcow2.c
@@ -1716,9 +1716,8 @@ static void qcow2_invalidate_cache(BlockDriverState *bs,
Error **errp)
ret = qcow2_open(bs, options, flags, &local_err);
QDECREF(options);
if (local_err) {
- error_setg(errp, "Could not reopen qcow2 layer: %s",
- error_get_pretty(local_err));
- error_free(local_err);
+ error_propagate(errp, local_err);
+ error_prepend(errp, "Could not reopen qcow2 layer: ");
return;
} else if (ret < 0) {
error_setg_errno(errp, -ret, "Could not reopen qcow2 layer");
diff --git a/block/qed.c b/block/qed.c
index 9b88895..31f4cc9 100644
--- a/block/qed.c
+++ b/block/qed.c
@@ -1611,9 +1611,8 @@ static void bdrv_qed_invalidate_cache(BlockDriverState
*bs, Error **errp)
memset(s, 0, sizeof(BDRVQEDState));
ret = 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: ");
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/virtio-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 *vdev,
VirtIOBlkConf *conf,
Error **errp)
{
VirtIOBlockDataPlane *s;
- Error *local_err = NULL;
BusState *qbus = BUS(qdev_get_parent_bus(DEVICE(vdev)));
VirtioBusClass *k = VIRTIO_BUS_GET_CLASS(qbus);
@@ -163,11 +162,8 @@ void virtio_blk_data_plane_create(VirtIODevice *vdev,
VirtIOBlkConf *conf,
/* If dataplane is (re-)enabled while the guest is running there could 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, errp)) {
+ error_prepend(errp, "cannot start dataplane thread: ");
return;
}
diff --git a/hw/scsi/vhost-scsi.c b/hw/scsi/vhost-scsi.c
index 00cdac6..7bc8288 100644
--- a/hw/scsi/vhost-scsi.c
+++ b/hw/scsi/vhost-scsi.c
@@ -217,11 +217,9 @@ static void vhost_scsi_realize(DeviceState *dev, Error
**errp)
}
if (vs->conf.vhostfd) {
- vhostfd = monitor_fd_param(cur_mon, vs->conf.vhostfd, &err);
+ vhostfd = monitor_fd_param(cur_mon, vs->conf.vhostfd, errp);
if (vhostfd == -1) {
- error_setg(errp, "vhost-scsi: unable to parse vhostfd: %s",
- error_get_pretty(err));
- error_free(err);
+ error_prepend(errp, "vhost-scsi: unable to parse vhostfd: ");
return;
}
} else {
diff --git a/hw/usb/bus.c b/hw/usb/bus.c
index 26ab67f..1bbe930 100644
--- a/hw/usb/bus.c
+++ b/hw/usb/bus.c
@@ -329,9 +329,9 @@ static USBDevice *usb_try_create_simple(USBBus *bus, const
char *name,
}
object_property_set_bool(OBJECT(dev), true, "realized", &err);
if (err) {
- error_setg(errp, "Failed to initialize USB device '%s': %s",
- name, error_get_pretty(err));
- error_free(err);
+ error_propagate(errp, err);
+ error_prepend(errp, "Failed to initialize USB device '%s': ",
+ name);
object_unparent(OBJECT(dev));
return NULL;
}
--
2.4.3
- [Qemu-devel] [PATCH v3 00/24] Error reporting cleanups and fixes, Markus Armbruster, 2015/12/18
- [Qemu-devel] [PATCH v3 18/24] vmdk: Clean up "Invalid extent lines" error message, Markus Armbruster, 2015/12/18
- [Qemu-devel] [PATCH v3 19/24] pci-assign: Clean up "Failed to assign" error messages, Markus Armbruster, 2015/12/18
- [Qemu-devel] [PATCH v3 13/24] spapr: Use error_reportf_err(), Markus Armbruster, 2015/12/18
- [Qemu-devel] [PATCH v3 17/24] vmdk: Clean up control flow in vmdk_parse_extents() a bit, Markus Armbruster, 2015/12/18
- [Qemu-devel] [PATCH v3 15/24] qemu-io qemu-nbd: Use error_report() etc. instead of fprintf(), Markus Armbruster, 2015/12/18
- [Qemu-devel] [PATCH v3 02/24] error: Use error_report_err() where appropriate (again), Markus Armbruster, 2015/12/18
- [Qemu-devel] [PATCH v3 12/24] error: Use error_prepend() where it makes obvious sense,
Markus Armbruster <=
- [Qemu-devel] [PATCH v3 08/24] test-throttle: Simplify qemu_init_main_loop() error handling, Markus Armbruster, 2015/12/18
- [Qemu-devel] [PATCH v3 07/24] qemu-nbd: Clean up "Failed to load snapshot" error message, Markus Armbruster, 2015/12/18
- [Qemu-devel] [PATCH v3 04/24] error: Use error_report_err() instead of ad hoc prints, Markus Armbruster, 2015/12/18
- [Qemu-devel] [PATCH v3 01/24] qemu-nbd: Replace BSDism <err.h> by error_report(), Markus Armbruster, 2015/12/18
- [Qemu-devel] [PATCH v3 09/24] error: New error_prepend(), error_reportf_err(), Markus Armbruster, 2015/12/18
- [Qemu-devel] [PATCH v3 10/24] error: Don't decorate original error message when adding to it, Markus Armbruster, 2015/12/18
- [Qemu-devel] [PATCH v3 06/24] block: Clean up "Could not create temporary overlay" error message, Markus Armbruster, 2015/12/18
- [Qemu-devel] [PATCH v3 03/24] error: Use error_report_err() instead of monitor_printf(), Markus Armbruster, 2015/12/18
- [Qemu-devel] [PATCH v3 16/24] error: Strip trailing '\n' from error string arguments (again), Markus Armbruster, 2015/12/18
- [Qemu-devel] [PATCH v3 14/24] migration: Use error_reportf_err() instead of monitor_printf(), Markus Armbruster, 2015/12/18