]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
storage_util: fix qemu-img sparse allocation
authorPavel Hrdina <phrdina@redhat.com>
Tue, 25 Aug 2020 13:09:53 +0000 (15:09 +0200)
committerPavel Hrdina <phrdina@redhat.com>
Tue, 25 Aug 2020 14:53:13 +0000 (16:53 +0200)
Commit <c9ec7088c7a3f4cd26bb471f1f243931fff6f4f9> introduced a support
to fully allocate qcow2 images when <allocation> matches <capacity> but
it doesn't work as expected.

The issue is that info.size_arg is in KB but the info.allocation
introduced by the mentioned commit is in B. This results in using
"preallocation=falloc," in cases where "preallocation=metadata," should
be used.

Signed-off-by: Pavel Hrdina <phrdina@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
src/storage/storage_util.c

index f7c09e3375d73af37beeaff93a9ebf7a1d7ee2f9..fcecedbc3a2752368f118e2d1446675fbbbd17b0 100644 (file)
@@ -1044,7 +1044,7 @@ virStorageBackendCreateQemuImgCmdFromVol(virStoragePoolObjPtr pool,
         .type = NULL,
         .inputType = NULL,
         .path = vol->target.path,
-        .allocation = vol->target.allocation,
+        .allocation = VIR_DIV_UP(vol->target.allocation, 1024),
         .encryption = !!vol->target.encryption,
         .preallocate = !!(flags & VIR_STORAGE_VOL_CREATE_PREALLOC_METADATA),
         .compat = vol->target.compat,