Sophie

Sophie

distrib > Scientific%20Linux > 5x > x86_64 > by-pkgid > 3160499aacb81f6735941eb4c372d87a > files > 171

kvm-83-164.el5_5.30.src.rpm

From 4d5b5a68fa8dca79498c2a1185679ceaabc46c1a Mon Sep 17 00:00:00 2001
From: Juan Quintela <quintela@redhat.com>
Date: Tue, 22 Dec 2009 17:06:02 -0200
Subject: [PATCH 15/16] RHEL5.4 needs virtio-blk at device version 2

RH-Author: Juan Quintela <quintela@redhat.com>
Message-id: <4b75f41a98168d909307f2fca2ddb862a2f95645.1261501421.git.quintela@redhat.com>
Patchwork-id: 5900
O-Subject: [PATCH 10/11] RHEL5.4 needs virtio-blk at device version 2
Bugzilla: 541731
RH-Acked-by: Markus Armbruster <armbru@redhat.com>
RH-Acked-by: Dor Laor <dlaor@redhat.com>
RH-Acked-by: Michael S. Tsirkin <mst@redhat.com>
RH-Acked-by: Marcelo Tosatti <mtosatti@redhat.com>

Signed-off-by: Juan Quintela <quintela@redhat.com>
---
 qemu/hw/pc.c         |    1 +
 qemu/hw/virtio-blk.c |    6 +++++-
 2 files changed, 6 insertions(+), 1 deletions(-)

Signed-off-by: Eduardo Habkost <ehabkost@redhat.com>
---
 qemu/hw/pc.c         |    1 +
 qemu/hw/virtio-blk.c |    6 +++++-
 2 files changed, 6 insertions(+), 1 deletions(-)

diff --git a/qemu/hw/pc.c b/qemu/hw/pc.c
index 214d292..bfa904c 100644
--- a/qemu/hw/pc.c
+++ b/qemu/hw/pc.c
@@ -1295,6 +1295,7 @@ QEMUMachine rhel540_machine = {
 		{ .name = "cpu", .version_id = 7 },
 		{ .name = "kvmclock", .version_id =  SAVEVM_DISABLED},
 		{ .name = "ide", .version_id =  3},
+		{ .name = "virtio-blk", .version_id =  2},
 		{ /* Empty */ }
     },
 };
diff --git a/qemu/hw/virtio-blk.c b/qemu/hw/virtio-blk.c
index 899b339..6f74c25 100644
--- a/qemu/hw/virtio-blk.c
+++ b/qemu/hw/virtio-blk.c
@@ -352,6 +352,7 @@ void *virtio_blk_init(PCIBus *bus, BlockDriverState *bs)
     VirtIOBlock *s;
     int cylinders, heads, secs;
     static int virtio_blk_id;
+    int version_id = machine_device_version("virtio-blk", 3);
 
     s = (VirtIOBlock *)virtio_init_pci(bus, "virtio-blk",
                                        PCI_VENDOR_ID_REDHAT_QUMRANET,
@@ -375,7 +376,10 @@ void *virtio_blk_init(PCIBus *bus, BlockDriverState *bs)
     s->vq = virtio_add_queue(&s->vdev, 128, virtio_blk_handle_output);
 
     qemu_add_vm_change_state_handler(virtio_blk_dma_restart_cb, s);
-    register_savevm("virtio-blk", virtio_blk_id++, 3,
+    if (version_id < 3) {
+        s->bs->enable_write_cache = 0;
+    }
+    register_savevm("virtio-blk", virtio_blk_id++, version_id,
                     virtio_blk_save, virtio_blk_load, s);
 
     return s;
-- 
1.6.3.rc4.29.g8146