On Wed, Nov 30, 2011 at 12:28 PM, Christoph Hellwig <h...@lst.de> wrote:
> On Wed, Nov 30, 2011 at 12:23:43PM +0000, Stefan Hajnoczi wrote:
>> Many places in QEMU call qemu_aio_flush() to complete all pending
>> asynchronous I/O.  Most of these places actually want to drain all block
>> requests but there is block layer API to do so.
>
> there seems to be a "not" missing in the last half sentence.
>
>>
>> This patch introduces the bdrv_drain_all() API to wait for requests
>> across all BlockDriverStates to complete.  As a bonus we perform checks
>> after qemu_aio_wait() to ensure that requests really have finished.
>
> It looks like all but four of the callers actually just want to drain a
> single BlockDriverState.  And one of those four already has its own loop
> over all BlockDriverStates.

Yes, we still don't have an interface for waiting on just one
BlockDriverState.  virtio-blk even has a comment about the fact that
there is no per-block device way of waiting.

I think this should be done later since it is independent of adding
these asserts after qemu_aio_flush() (which is what this patch does).

Stefan

Reply via email to