Sophie

Sophie

distrib > Scientific%20Linux > 5x > x86_64 > media > main-src > by-pkgid > aadbe78a25743146bb784eee19f007c5 > files > 307

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

From 5928014eb7193d23b36acfbe7ec8f043708e5623 Mon Sep 17 00:00:00 2001
From: Christoph Hellwig <chellwig@redhat.com>
Date: Tue, 24 Nov 2009 19:43:07 -0200
Subject: [PATCH 03/11] ide: use bdrv_aio_flush

RH-Author: Christoph Hellwig <chellwig@redhat.com>
Message-id: <1256889852.9905.5.camel@brick.lst.de>
Patchwork-id: 3650
O-Subject: [PATCH 4/5] ide: use bdrv_aio_flush
Bugzilla: 537646
RH-Acked-by: Rik van Riel <riel@redhat.com>
RH-Acked-by: Kevin Wolf <kwolf@redhat.com>
RH-Acked-by: Juan Quintela <quintela@redhat.com>

commit b0484ae464dcd8ee7439c4257b2f40d6b0e007dd
Author: Christoph Hellwig <hch@lst.de>
Date:   Fri Sep 4 19:02:06 2009 +0200

    ide: use bdrv_aio_flush

    Signed-off-by: Christoph Hellwig <hch@lst.de>
    Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>

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

diff --git a/qemu/hw/ide.c b/qemu/hw/ide.c
index a4d78be..4f98428 100644
--- a/qemu/hw/ide.c
+++ b/qemu/hw/ide.c
@@ -1180,6 +1180,16 @@ static void ide_atapi_cmd_check_status(IDEState *s)
     ide_set_irq(s);
 }
 
+static void ide_flush_cb(void *opaque, int ret)
+{
+    IDEState *s = opaque;
+
+    /* XXX: how do we signal I/O errors here? */
+
+    s->status = READY_STAT | SEEK_STAT;
+    ide_set_irq(s);
+}
+
 static inline void cpu_to_ube16(uint8_t *buf, int val)
 {
     buf[0] = val >> 8;
@@ -2378,9 +2388,9 @@ static void ide_ioport_write(void *opaque, uint32_t addr, uint32_t val)
         case WIN_FLUSH_CACHE:
         case WIN_FLUSH_CACHE_EXT:
             if (s->bs)
-                bdrv_flush(s->bs);
-	    s->status = READY_STAT | SEEK_STAT;
-            ide_set_irq(s);
+                bdrv_aio_flush(s->bs, ide_flush_cb, s);
+            else
+                ide_flush_cb(s, 0);
             break;
         case WIN_STANDBY:
         case WIN_STANDBY2:
-- 
1.6.3.rc4.29.g8146