do_loadvm(), which implements the 'loadvm' Monitor command, pauses the emulation to load the saved VM, however it will only resume it if the loading succeeds.
In other words, if the user issues 'loadvm' and it fails, the end result will be an error message and a paused VM. This seems an undesirable side effect to me because, most of the time, if a Monitor command fails the best thing we can do is to leave the VM as it were before the command was executed. FIXME: This will try to run a potentially corrupted image, the solution is to split load_vmstate() in two and only keep the VM paused if qemu_loadvm_state() fails. Signed-off-by: Luiz Capitulino <lcapitul...@redhat.com> --- monitor.c | 5 ++++- 1 files changed, 4 insertions(+), 1 deletions(-) diff --git a/monitor.c b/monitor.c index 975e77c..542c858 100644 --- a/monitor.c +++ b/monitor.c @@ -2472,8 +2472,11 @@ static void do_loadvm(Monitor *mon, const QDict *qdict) vm_stop(0); - if (load_vmstate(name) >= 0 && saved_vm_running) + load_vmstate(name); + + if (saved_vm_running) { vm_start(); + } } int monitor_get_fd(Monitor *mon, const char *fdname) -- 1.7.1.rc1.12.ga6018