mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-03-20 06:50:22 +03:00
qemu: Adjust size for qcow2/qed if not on sector boundary
https://bugzilla.redhat.com/show_bug.cgi?id=1002813 If qemuDomainBlockResize() is passed a size not on a KiB boundary - that is passed a size based in bytes (VIR_DOMAIN_BLOCK_RESIZE_BYTES), then depending on the source format (qcow2 or qed), the value passed must be on a sector (or 512 byte) boundary. Since other libvirt code quietly adjusts the capacity values, then do so here as well.
This commit is contained in:
parent
85a117a579
commit
87388d688d
@ -9459,6 +9459,13 @@ qemuDomainBlockResize(virDomainPtr dom,
|
||||
}
|
||||
disk = vm->def->disks[idx];
|
||||
|
||||
/* qcow2 and qed must be sized on 512 byte blocks/sectors,
|
||||
* so adjust size if necessary to round up.
|
||||
*/
|
||||
if (disk->src.format == VIR_STORAGE_FILE_QCOW2 ||
|
||||
disk->src.format == VIR_STORAGE_FILE_QED)
|
||||
size = VIR_ROUND_UP(size, 512);
|
||||
|
||||
if (virAsprintf(&device, "%s%s", QEMU_DRIVE_HOST_PREFIX,
|
||||
disk->info.alias) < 0)
|
||||
goto endjob;
|
||||
|
Loading…
x
Reference in New Issue
Block a user