block coroutines functions run in different aiocontext, and are not protected by the BQL. Therefore are I/O.
Signed-off-by: Emanuele Giuseppe Esposito <eespo...@redhat.com> Reviewed-by: Paolo Bonzini <pbonz...@redhat.com> Reviewed-by: Stefan Hajnoczi <stefa...@redhat.com> --- block/coroutines.h | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/block/coroutines.h b/block/coroutines.h index 514d169d23..079de537a0 100644 --- a/block/coroutines.h +++ b/block/coroutines.h @@ -27,6 +27,13 @@ #include "block/block_int.h" +/* + * I/O API functions. These functions are thread-safe. + * + * See include/block/block-io.h for more information about + * the I/O API. + */ + int coroutine_fn bdrv_co_check(BlockDriverState *bs, BdrvCheckResult *res, BdrvCheckMode fix); int coroutine_fn bdrv_co_invalidate_cache(BlockDriverState *bs, Error **errp); -- 2.27.0