Il 10/04/2012 20:10, Liu Yuan ha scritto:
> From: Liu Yuan <tailai...@taobao.com>
> 
> The 'qemu-img convert -h' advertise that the default cache mode is
> 'writeback', while in fact it is 'unsafe'.
> 
> This patch 1) changes the cache mode as 'writeback' and 2) explicitly
> calls bdrv_flush() to flush the dirty bits.
> 
> 2) is needed because some backend storage doesn't have a self-flush
> mechanism(for e.g., sheepdog), so we need to call bdrv_flush() to make
> sure the image is really writen to the storage instead of hanging around
> writeback cache forever.

Shouldn't the close method do that then?

Paolo

> Signed-off-by: Liu Yuan <tailai...@taobao.com>
> ---
>  qemu-img.c |    5 ++++-
>  1 files changed, 4 insertions(+), 1 deletions(-)
> 
> diff --git a/qemu-img.c b/qemu-img.c
> index 6a61ca8..f96230b 100644
> --- a/qemu-img.c
> +++ b/qemu-img.c
> @@ -644,7 +644,7 @@ static int img_convert(int argc, char **argv)
>  
>      fmt = NULL;
>      out_fmt = "raw";
> -    cache = "unsafe";
> +    cache = "writeback";
>      out_baseimg = NULL;
>      compress = 0;
>      for(;;) {
> @@ -1036,6 +1036,9 @@ out:
>      free_option_parameters(param);
>      qemu_vfree(buf);
>      if (out_bs) {
> +        if (ret == 0) {
> +            bdrv_flush(out_bs);
> +     }
>          bdrv_delete(out_bs);
>      }
>      if (bs) {


Reply via email to