Hi ----- Original Message ----- > > > On 05/07/2017 18:06, Marc-André Lureau wrote: > >>> coroutine_fn too) > >> It's not controversial, I would not have expected the functions to call > >> coroutine_fn. :) How do they do that? > >> > > For example, null_co_readv() calls null_co_common() which calls > > co_aio_sleep_ns() > > But these are bdrv_co_*, not bdrv_aio_*.
Oops, right. Indeed, it's not needed, but to avoid coroutine annotation mismatch, we would have to remove a few: static coroutine_fn BlockAIOCB *raw_aio_pdiscard(BlockDriverState *bs, static coroutine_fn BlockAIOCB *hdev_aio_pdiscard(BlockDriverState *bs, Only those 2, it seems.