aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarkus Armbruster <armbru@redhat.com>2010-02-17 16:24:10 +0100
committerMarkus Armbruster <armbru@redhat.com>2010-03-16 16:55:05 +0100
commit03cd4655cbbc304f355deffd3413f7e3cbbcbe5e (patch)
treeeaf8460c1e6c16ad44341768c392328ba7d9486b
parent4491e0f3984c81ebe12027de2f3d185953f09bde (diff)
savevm: Fix -loadvm to report errors to stderr, not the monitor
A monitor may not even exist. Change load_vmstate() to use qemu_error() instead of monitor_printf(). Parameter mon is now unused, remove it.
-rw-r--r--monitor.c2
-rw-r--r--savevm.c24
-rw-r--r--sysemu.h2
-rw-r--r--vl.c2
4 files changed, 14 insertions, 16 deletions
diff --git a/monitor.c b/monitor.c
index 672ae474bb..ec13ca47a8 100644
--- a/monitor.c
+++ b/monitor.c
@@ -2533,7 +2533,7 @@ static void do_loadvm(Monitor *mon, const QDict *qdict)
vm_stop(0);
- if (load_vmstate(mon, name) >= 0 && saved_vm_running)
+ if (load_vmstate(name) >= 0 && saved_vm_running)
vm_start();
}
diff --git a/savevm.c b/savevm.c
index a6e774b4d0..b634686e4f 100644
--- a/savevm.c
+++ b/savevm.c
@@ -1737,7 +1737,7 @@ void do_savevm(Monitor *mon, const QDict *qdict)
vm_start();
}
-int load_vmstate(Monitor *mon, const char *name)
+int load_vmstate(const char *name)
{
DriveInfo *dinfo;
BlockDriverState *bs, *bs1;
@@ -1747,7 +1747,7 @@ int load_vmstate(Monitor *mon, const char *name)
bs = get_bs_snapshots();
if (!bs) {
- monitor_printf(mon, "No block device supports snapshots\n");
+ qemu_error("No block device supports snapshots\n");
return -EINVAL;
}
@@ -1760,21 +1760,19 @@ int load_vmstate(Monitor *mon, const char *name)
ret = bdrv_snapshot_goto(bs1, name);
if (ret < 0) {
if (bs != bs1)
- monitor_printf(mon, "Warning: ");
+ qemu_error("Warning: ");
switch(ret) {
case -ENOTSUP:
- monitor_printf(mon,
- "Snapshots not supported on device '%s'\n",
- bdrv_get_device_name(bs1));
+ qemu_error("Snapshots not supported on device '%s'\n",
+ bdrv_get_device_name(bs1));
break;
case -ENOENT:
- monitor_printf(mon, "Could not find snapshot '%s' on "
- "device '%s'\n",
- name, bdrv_get_device_name(bs1));
+ qemu_error("Could not find snapshot '%s' on device '%s'\n",
+ name, bdrv_get_device_name(bs1));
break;
default:
- monitor_printf(mon, "Error %d while activating snapshot on"
- " '%s'\n", ret, bdrv_get_device_name(bs1));
+ qemu_error("Error %d while activating snapshot on '%s'\n",
+ ret, bdrv_get_device_name(bs1));
break;
}
/* fatal on snapshot block device */
@@ -1792,13 +1790,13 @@ int load_vmstate(Monitor *mon, const char *name)
/* restore the VM state */
f = qemu_fopen_bdrv(bs, 0);
if (!f) {
- monitor_printf(mon, "Could not open VM state file\n");
+ qemu_error("Could not open VM state file\n");
return -EINVAL;
}
ret = qemu_loadvm_state(f);
qemu_fclose(f);
if (ret < 0) {
- monitor_printf(mon, "Error %d while loading VM state\n", ret);
+ qemu_error("Error %d while loading VM state\n", ret);
return ret;
}
return 0;
diff --git a/sysemu.h b/sysemu.h
index afa11b5519..3fef78df88 100644
--- a/sysemu.h
+++ b/sysemu.h
@@ -54,7 +54,7 @@ extern qemu_irq qemu_system_powerdown;
void qemu_system_reset(void);
void do_savevm(Monitor *mon, const QDict *qdict);
-int load_vmstate(Monitor *mon, const char *name);
+int load_vmstate(const char *name);
void do_delvm(Monitor *mon, const QDict *qdict);
void do_info_snapshots(Monitor *mon);
diff --git a/vl.c b/vl.c
index fd89e50da7..0030d5493f 100644
--- a/vl.c
+++ b/vl.c
@@ -6072,7 +6072,7 @@ int main(int argc, char **argv, char **envp)
qemu_system_reset();
if (loadvm) {
- if (load_vmstate(cur_mon, loadvm) < 0) {
+ if (load_vmstate(loadvm) < 0) {
autostart = 0;
}
}