[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH v2 32/45] savevm: Include writable devices with remo
From: |
Markus Armbruster |
Subject: |
[Qemu-devel] [PATCH v2 32/45] savevm: Include writable devices with removable media |
Date: |
Wed, 3 Aug 2011 15:08:11 +0200 |
savevm and loadvm silently ignore block devices with removable media,
such as floppies and SD cards. Rolling back a VM to a previous
checkpoint will *not* roll back writes to block devices with removable
media.
Moreover, bdrv_is_removable() is a confused mess, and wrong in at
least one case: it considers "-drive if=xen,media=cdrom -M xenpv"
removable. It'll be cleaned up later in this series.
Read-only block devices are also ignored, but that's okay.
Fix by ignoring only read-only block devices and empty block devices.
Signed-off-by: Markus Armbruster <address@hidden>
---
block.c | 2 +-
savevm.c | 4 ++--
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/block.c b/block.c
index 1ff42b5..b3a5ee7 100644
--- a/block.c
+++ b/block.c
@@ -2047,7 +2047,7 @@ void bdrv_debug_event(BlockDriverState *bs, BlkDebugEvent
event)
int bdrv_can_snapshot(BlockDriverState *bs)
{
BlockDriver *drv = bs->drv;
- if (!drv || bdrv_is_removable(bs) || bdrv_is_read_only(bs)) {
+ if (!drv || !bdrv_is_inserted(bs) || bdrv_is_read_only(bs)) {
return 0;
}
diff --git a/savevm.c b/savevm.c
index 7801aa7..839712e 100644
--- a/savevm.c
+++ b/savevm.c
@@ -1914,7 +1914,7 @@ void do_savevm(Monitor *mon, const QDict *qdict)
bs = NULL;
while ((bs = bdrv_next(bs))) {
- if (bdrv_is_removable(bs) || bdrv_is_read_only(bs)) {
+ if (!bdrv_is_inserted(bs) || bdrv_is_read_only(bs)) {
continue;
}
@@ -2034,7 +2034,7 @@ int load_vmstate(const char *name)
bs = NULL;
while ((bs = bdrv_next(bs))) {
- if (bdrv_is_removable(bs) || bdrv_is_read_only(bs)) {
+ if (!bdrv_is_inserted(bs) || bdrv_is_read_only(bs)) {
continue;
}
--
1.7.6
- [Qemu-devel] [PATCH v2 24/45] scsi-disk: Avoid physical/virtual tray state mismatch, (continued)
- [Qemu-devel] [PATCH v2 24/45] scsi-disk: Avoid physical/virtual tray state mismatch, Markus Armbruster, 2011/08/03
- [Qemu-devel] [PATCH v2 33/45] xen: Clean up pci_piix3_xen_ide_unplug()'s test for "not a CD", Markus Armbruster, 2011/08/03
- [Qemu-devel] [PATCH v2 21/45] ide/atapi: Don't fail eject when tray is already open, Markus Armbruster, 2011/08/03
- [Qemu-devel] [PATCH v2 25/45] ide: Give vmstate structs internal linkage where possible, Markus Armbruster, 2011/08/03
- [Qemu-devel] [PATCH v2 34/45] spitz tosa: Simplify "drive is suitable for microdrive" test, Markus Armbruster, 2011/08/03
- [Qemu-devel] [PATCH v2 42/45] block: Reset buffer alignment on detach, Markus Armbruster, 2011/08/03
- [Qemu-devel] [PATCH v2 22/45] ide/atapi: Avoid physical/virtual tray state mismatch, Markus Armbruster, 2011/08/03
- [Qemu-devel] [PATCH v2 26/45] ide/atapi: Preserve tray state on migration, Markus Armbruster, 2011/08/03
- [Qemu-devel] [PATCH v2 39/45] hw: Trim superfluous #include "block_int.h", Markus Armbruster, 2011/08/03
- [Qemu-devel] [PATCH v2 32/45] savevm: Include writable devices with removable media,
Markus Armbruster <=
- [Qemu-devel] [PATCH v2 29/45] block: Leave tracking media change to device models, Markus Armbruster, 2011/08/03
- [Qemu-devel] [PATCH v2 20/45] ide: Provide IDEDeviceInfo method exit(), Markus Armbruster, 2011/08/03
- [Qemu-devel] [PATCH v2 36/45] block: Drop BlockDriverState member removable, Markus Armbruster, 2011/08/03
- [Qemu-devel] [PATCH v2 45/45] ide/atapi scsi-disk: Make monitor eject -f, then change work, Markus Armbruster, 2011/08/03
- [Qemu-devel] [PATCH v2 41/45] block: New bdrv_set_buffer_alignment(), Markus Armbruster, 2011/08/03
- [Qemu-devel] [PATCH v2 30/45] fdc: Make media change detection more robust, Markus Armbruster, 2011/08/03
- [Qemu-devel] [PATCH v2 44/45] block: New change_media_cb() parameter load, Markus Armbruster, 2011/08/03
- [Qemu-devel] [PATCH v2 27/45] scsi-disk: Preserve tray state on migration, Markus Armbruster, 2011/08/03