Message ID | 20171221142251.18366-3-kwolf@redhat.com |
---|---|
State | New |
Headers | show |
Series | Drain fixes and cleanups, part 2 | expand |
On Thu 21 Dec 2017 03:22:34 PM CET, Kevin Wolf wrote: > Signed-off-by: Kevin Wolf <kwolf@redhat.com> > Reviewed-by: Fam Zheng <famz@redhat.com> > --- > block/io.c | 6 ++++++ > 1 file changed, 6 insertions(+) > > diff --git a/block/io.c b/block/io.c > index cf780c3cb0..b94740b8ff 100644 > --- a/block/io.c > +++ b/block/io.c > @@ -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(); Reviewed-by: Alberto Garcia <berto@igalia.com> Berto
diff --git a/block/io.c b/block/io.c index cf780c3cb0..b94740b8ff 100644 --- a/block/io.c +++ b/block/io.c @@ -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)) {