Sophie

Sophie

distrib > Scientific%20Linux > 5x > x86_64 > by-pkgid > 340e01248478ba8b78a6d4d1809b1eff > files > 387

kvm-83-270.el5_11.src.rpm

From e213a3cd57d2f2f8cf43a62f5c7e963cba88d1b2 Mon Sep 17 00:00:00 2001
From: Juan Quintela <quintela@redhat.com>
Date: Sat, 19 Dec 2009 02:24:39 -0200
Subject: [PATCH 05/16] ide: save if cache was enabled

RH-Author: Juan Quintela <quintela@redhat.com>
Message-id: <3e7a6f4c610797b2d8b39f54dfaaaa2d6cb46039.1261190612.git.quintela@redhat.com>
Patchwork-id: 5817
O-Subject: [PATCH] ide: save if cache was enabled
Bugzilla: 549938
RH-Acked-by: Markus Armbruster <armbru@redhat.com>
RH-Acked-by: Dor Laor <dlaor@redhat.com>
RH-Acked-by: Marcelo Tosatti <mtosatti@redhat.com>

Signed-off-by: Juan Quintela <quintela@redhat.com>
---
 qemu/hw/ide.c |   15 ++++++++++++---
 1 files changed, 12 insertions(+), 3 deletions(-)

Signed-off-by: Eduardo Habkost <ehabkost@redhat.com>
---
 qemu/hw/ide.c |   15 ++++++++++++---
 1 files changed, 12 insertions(+), 3 deletions(-)

diff --git a/qemu/hw/ide.c b/qemu/hw/ide.c
index 9a030b0..9dd5a0b 100644
--- a/qemu/hw/ide.c
+++ b/qemu/hw/ide.c
@@ -2869,6 +2869,9 @@ static void ide_save(QEMUFile* f, IDEState *s, int version_id)
     qemu_put_8s(f, &s->sense_key);
     qemu_put_8s(f, &s->asc);
     /* XXX: if a transfer is pending, we do not save it yet */
+    if (version_id > 4) {
+        qemu_get_8s(f, &s->bs->enable_write_cache);
+    }
 }
 
 /* load per IDE drive data */
@@ -2897,6 +2900,12 @@ static void ide_load(QEMUFile* f, IDEState *s, int version_id)
     qemu_get_8s(f, &s->sense_key);
     qemu_get_8s(f, &s->asc);
     /* XXX: if a transfer is pending, we do not save it yet */
+    if (version_id > 4) {
+        /* should we advertise barriers? */
+        qemu_put_8s(f, &s->bs->enable_write_cache);
+    } else {
+        s->bs->enable_write_cache = 0;
+    }
 }
 
 /***********************************************************/
@@ -3368,7 +3377,7 @@ void pci_cmd646_ide_init(PCIBus *bus, BlockDriverState **hd_table,
     ide_init2(&d->ide_if[0], hd_table[0], hd_table[1], irq[0]);
     ide_init2(&d->ide_if[2], hd_table[2], hd_table[3], irq[1]);
 
-    register_savevm("ide", 0, 3, pci_ide_save, pci_ide_load, d);
+    register_savevm("ide", 0, 4, pci_ide_save, pci_ide_load, d);
     qemu_register_reset(cmd646_reset, d);
     cmd646_reset(d);
 }
@@ -3432,7 +3441,7 @@ void pci_piix3_ide_init(PCIBus *bus, BlockDriverState **hd_table, int devfn,
     qemu_register_reset(piix3_reset, d);
     piix3_reset(d);
 
-    register_savevm("ide", 0, 3, pci_ide_save, pci_ide_load, d);
+    register_savevm("ide", 0, 4, pci_ide_save, pci_ide_load, d);
 }
 
 /* hd_table must contain 4 block drivers */
@@ -3471,7 +3480,7 @@ void pci_piix4_ide_init(PCIBus *bus, BlockDriverState **hd_table, int devfn,
     qemu_register_reset(piix3_reset, d);
     piix3_reset(d);
 
-    register_savevm("ide", 0, 3, pci_ide_save, pci_ide_load, d);
+    register_savevm("ide", 0, 4, pci_ide_save, pci_ide_load, d);
 }
 
 /***********************************************************/
-- 
1.6.3.rc4.29.g8146