On Tue, Jun 26, 2018 at 04:24:33PM +0200, Kevin Wolf wrote:
> When growing an image, block drivers (especially protocol drivers) may
> initialise the newly added area. I/O requests to the same area need to
> wait for this initialisation to be completed so that data writes don't
> get overwritten and reads don't read uninitialised data.
> 
> To avoid overhead in the fast I/O path by adding new locking in the
> protocol drivers and to restrict the impact to requests that actually
> touch the new area, reuse the existing tracked request infrastructure in
> block/io.c and mark all discard requests as serialising.
> 
> With this change, it is safe for protocol drivers to make
> .bdrv_co_truncate actually asynchronous.
> 
> Signed-off-by: Kevin Wolf <kw...@redhat.com>
> ---
>  include/block/block_int.h |  1 +
>  block/io.c                | 25 +++++++++++++++++++++++++
>  2 files changed, 26 insertions(+)

Reviewed-by: Stefan Hajnoczi <stefa...@redhat.com>

Attachment: signature.asc
Description: PGP signature

Reply via email to