diff --git a/virtman-fix-shared-disk-request-alignment-error.patch b/virtman-fix-shared-disk-request-alignment-error.patch index a31d3b8b..0b53c51c 100644 --- a/virtman-fix-shared-disk-request-alignment-error.patch +++ b/virtman-fix-shared-disk-request-alignment-error.patch @@ -11,31 +11,35 @@ libvirt.libvirtError: internal error: qemu unexpectedly closed the monitor: 2023 Cannot get 'write' permission without 'resize': Image size is not a multiple of request alignment ---- virt-manager-4.1.0/virtManager/createvol.py.orig 2023-01-20 10:58:40.230657960 -0700 -+++ virt-manager-4.1.0/virtManager/createvol.py 2023-01-20 11:03:54.722665454 -0700 +Index: virt-manager-4.1.0/virtManager/createvol.py +=================================================================== +--- virt-manager-4.1.0.orig/virtManager/createvol.py ++++ virt-manager-4.1.0/virtManager/createvol.py @@ -246,7 +246,13 @@ class vmmCreateVolume(vmmGObjectUI): vol = self._make_stub_vol() vol.name = volname vol.capacity = (cap * 1024 * 1024 * 1024) + if vol.capacity: -+ # If a raw disk is marked 'shared', libvirt requires this -+ vol.capacity = 4096 * round(vol.capacity/4096) ++ # If a raw disk is marked 'shared', round up for libvirt ++ vol.capacity -= vol.capacity % -4096 vol.allocation = (alloc * 1024 * 1024 * 1024) + if vol.allocation: -+ vol.allocation = 4096 * round(vol.allocation/4096) ++ vol.allocation -= vol.allocation % -4096 + if backing: vol.backing_store = backing if fmt: ---- virt-manager-4.1.0/virtinst/devices/disk.py.orig 2023-01-20 10:58:28.578657682 -0700 -+++ virt-manager-4.1.0/virtinst/devices/disk.py 2023-01-20 11:05:00.706667026 -0700 +Index: virt-manager-4.1.0/virtinst/devices/disk.py +=================================================================== +--- virt-manager-4.1.0.orig/virtinst/devices/disk.py ++++ virt-manager-4.1.0/virtinst/devices/disk.py @@ -361,6 +361,9 @@ class DeviceDisk(Device): volname, poolobj.name()) cap = (size * 1024 * 1024 * 1024) + if cap: -+ # If a raw disk is marked 'shared', libvirt requires this -+ cap = 4096 * round(cap/4096) ++ # If a raw disk is marked 'shared', round up for libvirt ++ cap -= cap % -4096 if sparse: alloc = 0 else: