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>
signature.asc
Description: PGP signature