aboutsummaryrefslogtreecommitdiff
path: root/blockdev.c
diff options
context:
space:
mode:
authorPeter Maydell <peter.maydell@linaro.org>2014-04-28 11:50:30 +0100
committerPeter Maydell <peter.maydell@linaro.org>2014-04-28 11:50:31 +0100
commita41b2c995b52b2ce26c171c52ac7dc11c7dccd99 (patch)
tree63d44a2ccd30e219c4b10edc2b7fbb5f226a8756 /blockdev.c
parentd09a18d44d5bc0db10caa97cdd22c70e65adfe01 (diff)
parent172fc4dd33e604dcf868c28e73398c19e161708b (diff)
Merge remote-tracking branch 'remotes/stefanha/tags/block-pull-request' into staging
Block pull request # gpg: Signature made Fri 25 Apr 2014 17:05:13 BST using RSA key ID 81AB73C8 # gpg: Good signature from "Stefan Hajnoczi <stefanha@redhat.com>" # gpg: aka "Stefan Hajnoczi <stefanha@gmail.com>" * remotes/stefanha/tags/block-pull-request: iscsi: Don't use error_is_set() to suppress additional errors blockdev: Clean up fragile use of error_is_set() nbd: Use return values instead of error_is_set(errp) qemu-img: Consistently name Error * objects err, and not errp Use error_is_set() only when necessary (again) block: Expose host_* drivers in blockdev-add MAINTAINERS: Add qemu-img/io to block subsystem qemu-iotests: Improve and make use of QMPTestCase.wait_until_completed() doc: add -drive rerror=,werror= to qemu --help output block: Prevent coroutine stack overflow when recursing in bdrv_open_backing_file. Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Diffstat (limited to 'blockdev.c')
-rw-r--r--blockdev.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/blockdev.c b/blockdev.c
index 09826f10cf..952eb60e3d 100644
--- a/blockdev.c
+++ b/blockdev.c
@@ -1115,6 +1115,7 @@ typedef struct InternalSnapshotState {
static void internal_snapshot_prepare(BlkTransactionState *common,
Error **errp)
{
+ Error *local_err = NULL;
const char *device;
const char *name;
BlockDriverState *bs;
@@ -1163,8 +1164,10 @@ static void internal_snapshot_prepare(BlkTransactionState *common,
}
/* check whether a snapshot with name exist */
- ret = bdrv_snapshot_find_by_id_and_name(bs, NULL, name, &old_sn, errp);
- if (error_is_set(errp)) {
+ ret = bdrv_snapshot_find_by_id_and_name(bs, NULL, name, &old_sn,
+ &local_err);
+ if (local_err) {
+ error_propagate(errp, local_err);
return;
} else if (ret) {
error_setg(errp,