Handle BH's queued by AIO completions in qemu_aio_flush()
authorNolan <nolan@sigbus.net>
Mon, 20 Jul 2009 21:01:25 +0000 (14:01 -0700)
committerAnthony Liguori <aliguori@us.ibm.com>
Wed, 22 Jul 2009 15:58:46 +0000 (10:58 -0500)
Without this, the call to qemu_aio_flush during migration doesn't
actually flush all in-flight SCSI IOs.

Signed-off-by: Nolan Leake <nolan <at> sigbus.net>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>

aio.c

diff --git a/aio.c b/aio.c
index dc9b85d..efc63fd 100644 (file)
--- a/aio.c
+++ b/aio.c
@@ -112,7 +112,7 @@ void qemu_aio_flush(void)
         LIST_FOREACH(node, &aio_handlers, node) {
             ret |= node->io_flush(node->opaque);
         }
-    } while (ret > 0);
+    } while (qemu_bh_poll() || ret > 0);
 }
 
 void qemu_aio_wait(void)