Commit 2b624fe0 authored by Kevin Wolf's avatar Kevin Wolf
Browse files

block: Add errp to bdrv_all_goto_snapshot()

parent 0b62bcbc
Loading
Loading
Loading
Loading
+6 −5
Original line number Diff line number Diff line
@@ -467,9 +467,10 @@ fail:
}


int bdrv_all_goto_snapshot(const char *name, BlockDriverState **first_bad_bs)
int bdrv_all_goto_snapshot(const char *name, BlockDriverState **first_bad_bs,
                           Error **errp)
{
    int err = 0;
    int ret = 0;
    BlockDriverState *bs;
    BdrvNextIterator it;

@@ -478,10 +479,10 @@ int bdrv_all_goto_snapshot(const char *name, BlockDriverState **first_bad_bs)

        aio_context_acquire(ctx);
        if (bdrv_can_snapshot(bs)) {
            err = bdrv_snapshot_goto(bs, name, NULL);
            ret = bdrv_snapshot_goto(bs, name, errp);
        }
        aio_context_release(ctx);
        if (err < 0) {
        if (ret < 0) {
            bdrv_next_cleanup(&it);
            goto fail;
        }
@@ -489,7 +490,7 @@ int bdrv_all_goto_snapshot(const char *name, BlockDriverState **first_bad_bs)

fail:
    *first_bad_bs = bs;
    return err;
    return ret;
}

int bdrv_all_find_snapshot(const char *name, BlockDriverState **first_bad_bs)
+2 −1
Original line number Diff line number Diff line
@@ -84,7 +84,8 @@ int bdrv_snapshot_load_tmp_by_id_or_name(BlockDriverState *bs,
bool bdrv_all_can_snapshot(BlockDriverState **first_bad_bs);
int bdrv_all_delete_snapshot(const char *name, BlockDriverState **first_bsd_bs,
                             Error **err);
int bdrv_all_goto_snapshot(const char *name, BlockDriverState **first_bsd_bs);
int bdrv_all_goto_snapshot(const char *name, BlockDriverState **first_bad_bs,
                           Error **errp);
int bdrv_all_find_snapshot(const char *name, BlockDriverState **first_bad_bs);
int bdrv_all_create_snapshot(QEMUSnapshotInfo *sn,
                             BlockDriverState *vm_state_bs,
+3 −3
Original line number Diff line number Diff line
@@ -2346,10 +2346,10 @@ int load_snapshot(const char *name, Error **errp)
    /* Flush all IO requests so they don't interfere with the new state.  */
    bdrv_drain_all_begin();

    ret = bdrv_all_goto_snapshot(name, &bs);
    ret = bdrv_all_goto_snapshot(name, &bs, errp);
    if (ret < 0) {
        error_setg(errp, "Error %d while activating snapshot '%s' on '%s'",
                     ret, name, bdrv_get_device_name(bs));
        error_prepend(errp, "Could not load snapshot '%s' on '%s': ",
                      name, bdrv_get_device_name(bs));
        goto err_drain;
    }