[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] Re: [PATCH] qcow2: Fix image creation regression
From: |
Juan Quintela |
Subject: |
[Qemu-devel] Re: [PATCH] qcow2: Fix image creation regression |
Date: |
Tue, 23 Feb 2010 19:34:25 +0100 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/23.1 (gnu/linux) |
Kevin Wolf <address@hidden> wrote:
> When checking for errors, commit db89119d compares with the wrong values,
> failing image creation even when there was no error. Additionally, if an
> error has occured, we can't preallocate the image (it's likely broken).
>
> This unbreaks test 023 of qemu-iotests.
>
> Signed-off-by: Kevin Wolf <address@hidden>
Acked-by: Juan Quintela <address@hidden>
in the 1st part, I didnt' noticed the difference last time :(
> ---
> block/qcow2.c | 4 ++--
> 1 files changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/block/qcow2.c b/block/qcow2.c
> index 6632e6d..0e4cd98 100644
> --- a/block/qcow2.c
> +++ b/block/qcow2.c
> @@ -986,7 +986,7 @@ static int qcow_create2(const char *filename, int64_t
> total_size,
> lseek(fd, s->refcount_block_offset, SEEK_SET);
> ret = qemu_write_full(fd, s->refcount_block,
> ref_clusters * s->cluster_size);
> - if (ret != s->cluster_size) {
> + if (ret != ref_clusters * s->cluster_size) {
> ret = -1;
> goto exit;
> }
> @@ -998,7 +998,7 @@ exit:
> close(fd);
>
> /* Preallocate metadata */
> - if (prealloc) {
> + if (ret == 0 && prealloc) {
> BlockDriverState *bs;
> bs = bdrv_new("");
> bdrv_open(bs, filename, BDRV_O_CACHE_WB | BDRV_O_RDWR);