summary refs log tree commit diff stats
path: root/hw/ide/macio.c
diff options
context:
space:
mode:
authorStefan Hajnoczi <stefanha@linux.vnet.ibm.com>2011-11-30 12:23:43 +0000
committerKevin Wolf <kwolf@redhat.com>2011-12-05 14:56:06 +0100
commit922453bca6a927bb527068ae8679d587cfa45dbc (patch)
treebeb8fc3e9e180558f423e5b7ce97affed1ee8ca6 /hw/ide/macio.c
parent5f8b6491f20732e0a31e64bbf75b62def579e044 (diff)
downloadfocaccia-qemu-922453bca6a927bb527068ae8679d587cfa45dbc.tar.gz
focaccia-qemu-922453bca6a927bb527068ae8679d587cfa45dbc.zip
block: convert qemu_aio_flush() calls to bdrv_drain_all()
Many places in QEMU call qemu_aio_flush() to complete all pending
asynchronous I/O.  Most of these places actually want to drain all block
requests but there is no block layer API to do so.

This patch introduces the bdrv_drain_all() API to wait for requests
across all BlockDriverStates to complete.  As a bonus we perform checks
after qemu_aio_wait() to ensure that requests really have finished.

Signed-off-by: Stefan Hajnoczi <stefanha@linux.vnet.ibm.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Diffstat (limited to 'hw/ide/macio.c')
-rw-r--r--hw/ide/macio.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/hw/ide/macio.c b/hw/ide/macio.c
index 70b33422d2..c09d2e0a35 100644
--- a/hw/ide/macio.c
+++ b/hw/ide/macio.c
@@ -200,8 +200,9 @@ static void pmac_ide_flush(DBDMA_io *io)
 {
     MACIOIDEState *m = io->opaque;
 
-    if (m->aiocb)
-        qemu_aio_flush();
+    if (m->aiocb) {
+        bdrv_drain_all();
+    }
 }
 
 /* PowerMac IDE memory IO */