Hi all! This is inspired by Kevin's "block: Fix blk->in_flight during blk_wait_while_drained()" series.
So, like it's now done for block-backends, let's expand in_flight-protected sections for bdrv_ interfaces, including coroutine_enter and BDRV_POLL_WHILE loop into these sections. v2: 01: drop coroutine_fn from bdrv_is_allocated_above declaration 02-04: add Stefan's r-b 05: improve commit message fix typo in bdrv_do_pdiscard name add more "To be called between exactly one pair of bdrv_inc/dec_in_flight()" comments drop unused bs variable fix bdrv_pdiscard_co_entry to use bdrv_do_pdiscard 06: similarly to 05, add additional comment to bdrv_is_allocated_above_co_entry 07-08: add Stefan's r-b 09: add "To be called between exactly one pair of bdrv_inc/dec_in_flight()" for bdrv_make_zero_co_entry Vladimir Sementsov-Ogievskiy (9): block/io: refactor bdrv_is_allocated_above to run only one coroutine block/io: refactor bdrv_co_ioctl: move aio stuff to corresponding block block/io: move flush and pdiscard stuff down block/io: move bdrv_rw_co_entry and friends down block/io: expand in_flight inc/dec section: simple cases block/io: expand in_flight inc/dec section: block-status block/io: add bdrv_do_pwrite_zeroes block/io: move bdrv_make_zero under block-status block/io: expand in_flight inc/dec section: bdrv_make_zero block/io.c | 789 +++++++++++++++++++++++++++++++++++------------------ 1 file changed, 525 insertions(+), 264 deletions(-) -- 2.21.0