@@ -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) {
Signed-off-by: Pavel Hrdina <phrdina@redhat.com> --- savevm.c | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-)