aboutsummaryrefslogtreecommitdiff
path: root/block.h
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 /block.h
parent5f8b6491f20732e0a31e64bbf75b62def579e044 (diff)
downloadqemu-922453bca6a927bb527068ae8679d587cfa45dbc.zip
qemu-922453bca6a927bb527068ae8679d587cfa45dbc.tar.gz
qemu-922453bca6a927bb527068ae8679d587cfa45dbc.tar.bz2
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 'block.h')
-rw-r--r--block.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/block.h b/block.h
index 5f8a98a..1790f99 100644
--- a/block.h
+++ b/block.h
@@ -214,6 +214,7 @@ int bdrv_flush(BlockDriverState *bs);
int coroutine_fn bdrv_co_flush(BlockDriverState *bs);
void bdrv_flush_all(void);
void bdrv_close_all(void);
+void bdrv_drain_all(void);
int bdrv_discard(BlockDriverState *bs, int64_t sector_num, int nb_sectors);
int bdrv_co_discard(BlockDriverState *bs, int64_t sector_num, int nb_sectors);