[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH 4/5] ide: use bdrv_aio_flush
From: |
Christoph Hellwig |
Subject: |
[Qemu-devel] [PATCH 4/5] ide: use bdrv_aio_flush |
Date: |
Fri, 4 Sep 2009 19:02:06 +0200 |
User-agent: |
Mutt/1.3.28i |
Signed-off-by: Christoph Hellwig <address@hidden>
Index: qemu/hw/ide/core.c
===================================================================
--- qemu.orig/hw/ide/core.c 2009-09-04 13:43:56.306522749 -0300
+++ qemu/hw/ide/core.c 2009-09-04 13:52:43.814551074 -0300
@@ -771,6 +771,16 @@ static void ide_atapi_cmd_check_status(I
ide_set_irq(s->bus);
}
+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->bus);
+}
+
static inline void cpu_to_ube16(uint8_t *buf, int val)
{
buf[0] = val >> 8;
@@ -1969,9 +1979,9 @@ void ide_ioport_write(void *opaque, uint
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->bus);
+ bdrv_aio_flush(s->bs, ide_flush_cb, s);
+ else
+ ide_flush_cb(s, 0);
break;
case WIN_STANDBY:
case WIN_STANDBY2: