Browse Source

qcow2: Fix image creation regression

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 <kwolf@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
stable-0.13
Kevin Wolf 16 years ago
committed by Anthony Liguori
parent
commit
6f745bdaac
  1. 4
      block/qcow2.c

4
block/qcow2.c

@ -984,7 +984,7 @@ static int qcow_create2(const char *filename, int64_t total_size,
lseek(fd, s->refcount_block_offset, SEEK_SET); lseek(fd, s->refcount_block_offset, SEEK_SET);
ret = qemu_write_full(fd, s->refcount_block, ret = qemu_write_full(fd, s->refcount_block,
ref_clusters * s->cluster_size); ref_clusters * s->cluster_size);
if (ret != s->cluster_size) { if (ret != ref_clusters * s->cluster_size) {
ret = -1; ret = -1;
goto exit; goto exit;
} }
@ -996,7 +996,7 @@ exit:
close(fd); close(fd);
/* Preallocate metadata */ /* Preallocate metadata */
if (prealloc) { if (ret == 0 && prealloc) {
BlockDriverState *bs; BlockDriverState *bs;
bs = bdrv_new(""); bs = bdrv_new("");
bdrv_open(bs, filename, BDRV_O_CACHE_WB | BDRV_O_RDWR); bdrv_open(bs, filename, BDRV_O_CACHE_WB | BDRV_O_RDWR);

Loading…
Cancel
Save