as described in the comment of the function Signed-off-by: Denis V. Lunev <d...@openvz.org> CC: Stefan Hajnoczi <stefa...@redhat.com> CC: Paolo Bonzini <pbonz...@redhat.com> --- block/io.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/block/io.c b/block/io.c index 5ac6256..2e98d45 100644 --- a/block/io.c +++ b/block/io.c @@ -247,12 +247,15 @@ bool bdrv_requests_pending(BlockDriverState *bs) void bdrv_drain(BlockDriverState *bs) { bool busy = true; + AioContext *aio_context = bdrv_get_aio_context(bs); + + assert(aio_context_is_locked(aio_context)); while (busy) { /* Keep iterating */ bdrv_flush_io_queue(bs); busy = bdrv_requests_pending(bs); - busy |= aio_poll(bdrv_get_aio_context(bs), busy); + busy |= aio_poll(aio_context, busy); } } -- 2.1.4