Signed-off-by: Pavel Hrdina <phrd...@redhat.com> --- savevm.c | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-)
diff --git a/savevm.c b/savevm.c index 14f61e9..b705693 100644 --- a/savevm.c +++ b/savevm.c @@ -1759,7 +1759,7 @@ void qemu_savevm_state_cancel(QEMUFile *f) } } -static int qemu_savevm_state(QEMUFile *f) +static int qemu_savevm_state(QEMUFile *f, Error **errp) { int ret; MigrationParams params = { @@ -1767,26 +1767,29 @@ static int qemu_savevm_state(QEMUFile *f) .shared = 0 }; - if (qemu_savevm_state_blocked(NULL)) { + if (qemu_savevm_state_blocked(errp)) { ret = -EINVAL; goto out; } - ret = qemu_savevm_state_begin(f, ¶ms, NULL); + ret = qemu_savevm_state_begin(f, ¶ms, errp); if (ret < 0) goto out; do { - ret = qemu_savevm_state_iterate(f, NULL); + ret = qemu_savevm_state_iterate(f, errp); if (ret < 0) goto out; } while (ret == 0); - ret = qemu_savevm_state_complete(f, NULL); + ret = qemu_savevm_state_complete(f, errp); out: if (ret == 0) { ret = qemu_file_get_error(f); + if (ret < 0) { + error_setg_errno(errp, errno, "Failed to create vmstate."); + } } return ret; @@ -2187,7 +2190,7 @@ void do_savevm(Monitor *mon, const QDict *qdict) monitor_printf(mon, "Could not open VM state file\n"); goto the_end; } - ret = qemu_savevm_state(f); + ret = qemu_savevm_state(f, NULL); vm_state_size = qemu_ftell(f); qemu_fclose(f); if (ret < 0) { -- 1.8.1