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>

Reply via email to