Skip to content

Commit

Permalink
block: Assert drain_all is only called from main AioContext
Browse files Browse the repository at this point in the history
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Reviewed-by: Fam Zheng <famz@redhat.com>
  • Loading branch information
kevmw committed Dec 22, 2017
1 parent 8e77e0b commit 9a7e86c
Showing 1 changed file with 6 additions and 0 deletions.
6 changes: 6 additions & 0 deletions block/io.c
Expand Up @@ -330,6 +330,12 @@ void bdrv_drain_all_begin(void)
BdrvNextIterator it;
GSList *aio_ctxs = NULL, *ctx;

/* BDRV_POLL_WHILE() for a node can only be called from its own I/O thread
* or the main loop AioContext. We potentially use BDRV_POLL_WHILE() on
* nodes in several different AioContexts, so make sure we're in the main
* context. */
assert(qemu_get_current_aio_context() == qemu_get_aio_context());

block_job_pause_all();

for (bs = bdrv_first(&it); bs; bs = bdrv_next(&it)) {
Expand Down

0 comments on commit 9a7e86c

Please sign in to comment.