On 08/03/2016 17:34, Kevin Wolf wrote:
> There's no reason to use a writethrough cache mode while creating an
> image.
There's no reason to do flushes in fact, so you could use
BDRV_O_NO_FLUSH too. :)
Paolo
> Signed-off-by: Kevin Wolf
> ---
> block/parallels.c | 3 ++-
> block/qcow.c | 3 ++-
> block/qcow2.c | 3 ++-
> block/sheepdog.c | 6 --
> block/vdi.c | 3 ++-
> block/vhdx.c | 3 ++-
> block/vmdk.c | 9 ++---
> block/vpc.c | 3 ++-
> 8 files changed, 22 insertions(+), 11 deletions(-)
>
> diff --git a/block/parallels.c b/block/parallels.c
> index 645521d..3f9fd48 100644
> --- a/block/parallels.c
> +++ b/block/parallels.c
> @@ -479,7 +479,8 @@ static int parallels_create(const char *filename,
> QemuOpts *opts, Error **errp)
>
> file = NULL;
> ret = bdrv_open(, filename, NULL, NULL,
> -BDRV_O_RDWR | BDRV_O_PROTOCOL, _err);
> +BDRV_O_RDWR | BDRV_O_CACHE_WB | BDRV_O_PROTOCOL,
> +_err);
> if (ret < 0) {
> error_propagate(errp, local_err);
> return ret;
> diff --git a/block/qcow.c b/block/qcow.c
> index 251910c..c46810c 100644
> --- a/block/qcow.c
> +++ b/block/qcow.c
> @@ -798,7 +798,8 @@ static int qcow_create(const char *filename, QemuOpts
> *opts, Error **errp)
>
> qcow_bs = NULL;
> ret = bdrv_open(_bs, filename, NULL, NULL,
> -BDRV_O_RDWR | BDRV_O_PROTOCOL, _err);
> +BDRV_O_RDWR | BDRV_O_CACHE_WB | BDRV_O_PROTOCOL,
> +_err);
> if (ret < 0) {
> error_propagate(errp, local_err);
> goto cleanup;
> diff --git a/block/qcow2.c b/block/qcow2.c
> index 8babecd..5a79177 100644
> --- a/block/qcow2.c
> +++ b/block/qcow2.c
> @@ -2173,7 +2173,8 @@ static int qcow2_create2(const char *filename, int64_t
> total_size,
> }
>
> bs = NULL;
> -ret = bdrv_open(, filename, NULL, NULL, BDRV_O_RDWR | BDRV_O_PROTOCOL,
> +ret = bdrv_open(, filename, NULL, NULL,
> +BDRV_O_RDWR | BDRV_O_CACHE_WB | BDRV_O_PROTOCOL,
> _err);
> if (ret < 0) {
> error_propagate(errp, local_err);
> diff --git a/block/sheepdog.c b/block/sheepdog.c
> index 8739acc..5f31ab3 100644
> --- a/block/sheepdog.c
> +++ b/block/sheepdog.c
> @@ -1646,7 +1646,8 @@ static int sd_prealloc(const char *filename, Error
> **errp)
> void *buf = NULL;
> int ret;
>
> -ret = bdrv_open(, filename, NULL, NULL, BDRV_O_RDWR | BDRV_O_PROTOCOL,
> +ret = bdrv_open(, filename, NULL, NULL,
> +BDRV_O_RDWR | BDRV_O_CACHE_WB | BDRV_O_PROTOCOL,
> errp);
> if (ret < 0) {
> goto out_with_err_set;
> @@ -1839,7 +1840,8 @@ static int sd_create(const char *filename, QemuOpts
> *opts,
> }
>
> bs = NULL;
> -ret = bdrv_open(, backing_file, NULL, NULL, BDRV_O_PROTOCOL,
> errp);
> +ret = bdrv_open(, backing_file, NULL, NULL,
> +BDRV_O_PROTOCOL | BDRV_O_CACHE_WB, errp);
> if (ret < 0) {
> goto out;
> }
> diff --git a/block/vdi.c b/block/vdi.c
> index b403243..12407c4 100644
> --- a/block/vdi.c
> +++ b/block/vdi.c
> @@ -766,7 +766,8 @@ static int vdi_create(const char *filename, QemuOpts
> *opts, Error **errp)
> error_propagate(errp, local_err);
> goto exit;
> }
> -ret = bdrv_open(, filename, NULL, NULL, BDRV_O_RDWR | BDRV_O_PROTOCOL,
> +ret = bdrv_open(, filename, NULL, NULL,
> +BDRV_O_RDWR | BDRV_O_CACHE_WB | BDRV_O_PROTOCOL,
> _err);
> if (ret < 0) {
> error_propagate(errp, local_err);
> diff --git a/block/vhdx.c b/block/vhdx.c
> index 9a51428..ea030ad 100644
> --- a/block/vhdx.c
> +++ b/block/vhdx.c
> @@ -1838,7 +1838,8 @@ static int vhdx_create(const char *filename, QemuOpts
> *opts, Error **errp)
> }
>
> bs = NULL;
> -ret = bdrv_open(, filename, NULL, NULL, BDRV_O_RDWR | BDRV_O_PROTOCOL,
> +ret = bdrv_open(, filename, NULL, NULL,
> +BDRV_O_RDWR | BDRV_O_CACHE_WB | BDRV_O_PROTOCOL,
> _err);
> if (ret < 0) {
> error_propagate(errp, local_err);
> diff --git a/block/vmdk.c b/block/vmdk.c
> index 03be7f0..dd80936 100644
> --- a/block/vmdk.c
> +++ b/block/vmdk.c
> @@ -1664,7 +1664,8 @@ static int vmdk_create_extent(const char *filename,
> int64_t filesize,
> }
>
> assert(bs == NULL);
> -ret = bdrv_open(, filename, NULL, NULL, BDRV_O_RDWR | BDRV_O_PROTOCOL,
> +ret = bdrv_open(, filename, NULL, NULL,
> +BDRV_O_RDWR | BDRV_O_CACHE_WB | BDRV_O_PROTOCOL,
> _err);
> if (ret < 0) {
> error_propagate(errp, local_err);
> @@ -1944,7 +1945,8 @@ static int vmdk_create(const char *filename, QemuOpts
> *opts, Error **errp)
> ret = -ENOENT;
> goto exit;
>