27.04.2020 17:38, Vladimir Sementsov-Ogievskiy wrote:
> 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.
>
OK, let's postpone this thing.
1. Idea to move ind/dec out of coroutine seems wrong, it leads to dead-lock, as shown in backtrace in my answer to 5/9.
2. Idea to keep request inside only one pair of ind/dec is probably an extra restriction in bdrv layer (I just blindly followed how it was done in blk layer by Kevin)
3. We still may have a theoretical race between request start and drained section start, but it needs another audit and smarter solution.
So, seems that we should not apply these series as it is, sorry for the noise. I think, I'll resend my 64bit-block-layer series based on master instead of this one.
--
Best regards,
Vladimir