]> git.proxmox.com Git - mirror_qemu.git/commitdiff
parallels: wrong call to bdrv_truncate
authorDenis V. Lunev <den@openvz.org>
Mon, 27 Mar 2017 14:38:08 +0000 (17:38 +0300)
committerStefan Hajnoczi <stefanha@redhat.com>
Tue, 28 Mar 2017 10:06:00 +0000 (11:06 +0100)
Parallels driver should not call bdrv_truncate if the image was opened
in the read-only mode. Without the patch
    qemu-img check harddisk.hds
asserts with
    bdrv_truncate: Assertion `child->perm & BLK_PERM_RESIZE' failed.

Parameters used on the write path are not needed if the image is opened
in the read-only mode.

Signed-off-by: Denis V. Lunev <den@openvz.org>
Reported-by: Edgar Kaziahmedov <edos@virtuozzo.mipt.ru>
Message-id: 1490625488-7980-1-git-send-email-den@openvz.org
CC: Stefan Hajnoczi <stefanha@redhat.com>
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
block/parallels.c

index 6bf93753e824f36d9fd67abb8a1387ca79ddb0d1..4173b3fb9d2939456b598ddfe89c4a6a6ad08ea0 100644 (file)
@@ -687,7 +687,8 @@ static int parallels_open(BlockDriverState *bs, QDict *options, int flags,
     if (local_err != NULL) {
         goto fail_options;
     }
-    if (!bdrv_has_zero_init(bs->file->bs) ||
+
+    if (!(flags & BDRV_O_RESIZE) || !bdrv_has_zero_init(bs->file->bs) ||
             bdrv_truncate(bs->file, bdrv_getlength(bs->file->bs)) != 0) {
         s->prealloc_mode = PRL_PREALLOC_MODE_FALLOCATE;
     }