This is a dump of all minor coroutine-related fixes found while looking around and testing various things in the QEMU block layer.
Patches aim to: - add missing coroutine_fn annotation to the functions - simplify to avoid the typical "if in coroutine: fn() // else create_coroutine(fn)" already present in generated_co_wraper functions. - make sure that if a BlockDriver callback is defined as coroutine_fn, then it is always running in a coroutine. This serie is based on Kevin Wolf's series "block: Simplify drain". Based-on: <20221108123738.530873-1-kw...@redhat.com> Emanuele --- v3: * Remove patch 1, base on kevin "drain semplification serie" v2: * clarified commit message in patches 2/3/6 on why we add coroutine_fn Emanuele Giuseppe Esposito (8): block-copy: add missing coroutine_fn annotations nbd/server.c: add missing coroutine_fn annotations block-backend: replace bdrv_*_above with blk_*_above block: distinguish between bdrv_create running in coroutine and not block/vmdk: add missing coroutine_fn annotations block: bdrv_create_file is a coroutine_fn block: bdrv_create is never called in coroutine context block/dirty-bitmap: remove unnecessary qemu_in_coroutine() case block.c | 75 ++++++++++++++---------------- block/block-backend.c | 21 +++++++++ block/block-copy.c | 15 +++--- block/commit.c | 4 +- block/dirty-bitmap.c | 66 ++++++++++++-------------- block/vmdk.c | 36 +++++++------- include/block/block-global-state.h | 3 +- include/sysemu/block-backend-io.h | 9 ++++ nbd/server.c | 43 +++++++++-------- qemu-img.c | 4 +- 10 files changed, 151 insertions(+), 125 deletions(-) -- 2.31.1