Il 18/02/2013 13:48, Peter Lieven ha scritto: > bdrv_truncate() invalidates the bdrv_check_request() result for > in-flight requests, so there should better be none. > > Signed-off-by: Peter Lieven <p...@kamp.de> > Reported-by: Kevin Wolf <kw...@redhat.com> > --- > block.c | 4 ++++ > 1 file changed, 4 insertions(+) > > diff --git a/block.c b/block.c > index 50dab8e..d8880e3 100644 > --- a/block.c > +++ b/block.c > @@ -2427,6 +2427,10 @@ int bdrv_truncate(BlockDriverState *bs, int64_t > offset) > return -EACCES; > if (bdrv_in_use(bs)) > return -EBUSY; > + > + /* there should be better no IOs in flight when we truncate the > device */ > + bdrv_drain_all(); > + > ret = drv->bdrv_truncate(bs, offset); > if (ret == 0) { > ret = refresh_total_sectors(bs, offset >> BDRV_SECTOR_BITS);
Cc: qemu-sta...@nongnu.org Reviewed-by: Paolo Bonzini <pbonz...@redhat.com>