Commit Graph
53863 Commits
Author SHA1 Message Date
Jonathon Jongsma f9c95bdbd0 NEWS: mention new hyperv features
Signed-off-by: Jonathon Jongsma <jjongsma@redhat.com>
Reviewed-by: Jiri Denemark <jdenemar@redhat.com>
2026-04-01 09:17:17 +02:00
Peter Krempa 8850040735 NEWS: Document 'handle' fs backend removal, blockjob backend zeroing and stats for '<dataStore>'
Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2026-03-31 15:24:36 +02:00
Pavel Hrdina d2c6b93f4e NEWS: Document IOMMUFD fixes and new features
Signed-off-by: Pavel Hrdina <phrdina@redhat.com>
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
2026-03-31 15:17:11 +02:00
Jiri Denemark f5868958e4 NEWS: Mention VIR_CONNECT_GET_DOMAIN_CAPABILITIES_EXPAND_CPU_FEATURES
Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Pavel Hrdina <phrdina@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2026-03-31 15:11:06 +02:00
Michal Privoznik 473b1d917c NEWS: Document features/improvements/bug fixes I've participated in
There are some features/improvements/bug fixes I've either
contributed or reviewed/merged. Document them for upcoming
release.

Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2026-03-31 14:16:01 +02:00
Pavel Hrdina 2f8013287a qemu_hotplug: Set correct iommufdState on error path
If hotplugging host device that needs to add iommufd object fails we
need to remove the iommufd object as well. We also need to update the
iommufdState otherwise hotplugging any host device with iommufd will
fail for the same VM.

Fixes: 5d16bef1a6
Signed-off-by: Pavel Hrdina <phrdina@redhat.com>
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
2026-03-31 14:11:40 +02:00
Pavel Borecki e46934cd98 Translated using Weblate (Czech)
Currently translated at 98.2% (10782 of 10975 strings)

Translation: libvirt/libvirt
Translate-URL: https://translate.fedoraproject.org/projects/libvirt/libvirt/cs/

Signed-off-by: Pavel Borecki <pavel.borecki@gmail.com>
v12.2.0-rc2
2026-03-27 12:59:40 +00:00
Pavel Hrdina b96ea4db3a hypervisor: Call virWaitForDevices() after detaching host devices
On systems with selinux enabled starting a VM with managed host device
using IOMMUFD backend can run into race-condition where both libvirt and
udev are setting selinux label on /dev/vfio/devices/vfioX device. If
udev is the last one to set selinux label starting VM fails with:

error: internal error: QEMU unexpectedly closed the monitor (vm='test'): 2026-03-26T15:47:36.620422Z qemu-kvm: -device {"driver":"vfio-pci","id":"hostdev0","iommufd":"iommufd0","fd":"20","bus":"pci.7","addr":"0x0"}: vfio hostdev0: Failed to add fd 20 to KVM VFIO device: Invalid argument

We need to wait for udev to finish processing all events.

Signed-off-by: Pavel Hrdina <phrdina@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2026-03-27 13:58:35 +01:00
Peter Krempa 3a91192252 util: virfile: Don't over-allocate buffers in saferead_lim
Limit the size of the allocated buffer to max_len + 1.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Pavel Hrdina <phrdina@redhat.com>
2026-03-27 11:44:25 +01:00
Peter Krempa a719ab7344 util: virfile: Document the various functions for reading from file/fd
Document both the behaviour if requested length isn't enough to read the
file as well as the semantics of NUL-termination of the buffer.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Pavel Hrdina <phrdina@redhat.com>
2026-03-27 11:44:25 +01:00
Peter Krempa 4fc09da299 virPCIDeviceReadID: Fix use of 'virFileReadAll'
Use 'virFileReadAllQuiet' since the function doesn't want to report
errors on other code paths.

The function also assumed that the file which it reads always 7 bytes
isn't true at least in the test suite. This didn't cause a problem
because the test data had strings 6 bytes long so it didn't cause a
write beyond the end of the buffer.

Clear the newline by using strchrnul instead to find it rather than
assuming where it is.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Pavel Hrdina <phrdina@redhat.com>
2026-03-27 11:44:25 +01:00
Peter Krempa 59684e9cc1 virNetDevIPCheckIPv6Forwarding: Don't NUL terminate buffer from virFileReadAll
The buffer is already terminated. Luckily the last character in the
buffer was a newline so no information was mangled.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Pavel Hrdina <phrdina@redhat.com>
2026-03-27 11:44:25 +01:00
Peter Krempa 747a74dd05 virSecretLoadValue: Don't re-termiante the buffer
The buffer returned from 'virFileReadAll' is NUL terminated no need to
do it explicitly or to shorten it since this is now also done.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Pavel Hrdina <phrdina@redhat.com>
2026-03-27 11:44:25 +01:00
Peter Krempa 58b3a78aff virPCIDeviceReadClass: Don't write beyond end of buffer from virFileReadAll
The returned class string from the kernel isn't guaranteed to be always
9 bytes, thus the write to the buffer could happen beyond the guaranteed
length.

Since 'virFileReadAll' already NUL-terminates the buffer just delete
the redundant overwrite.

This fixes an invalid write beyond the end of the buffer happening since
458c6a2810 where the returned buffer is shortened.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Pavel Hrdina <phrdina@redhat.com>
2026-03-27 11:44:25 +01:00
Peter Krempa 458c6a2810 util: file: Shrink buffer returned from 'saferead_lim' to actual size
The bufer resizing algorithm resizes the buffer in increments of the
value of the 'BUFSIZ' macro. On linux it's currently 8k. In case when
the caller wants to retain the buffer for long time with little data
read this creates massive overhead.

Realloc the buffer to actual size before returning it to the user.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Pavel Hrdina <phrdina@redhat.com>
2026-03-27 06:53:07 +01:00
Peter Krempa 74b24ffc24 secret: config: Don't leak 'cfg->secretsEncryptionKey'
==2413993== 8,193 bytes in 1 blocks are definitely lost in loss record 4,201 of 4,225
 ==2413993==    at 0x48FC897: realloc (vg_replace_malloc.c:1804)
 ==2413993==    by 0x4ED0B0A: g_realloc (in /usr/lib64/libglib-2.0.so.0.8600.4)
 ==2413993==    by 0x494112B: virReallocN (viralloc.c:52)
 ==2413993==    by 0x49684F6: saferead_lim (virfile.c:1511)
 ==2413993==    by 0x4968C8B: virFileReadLimFD (virfile.c:1587)
 ==2413993==    by 0x4968D2C: virFileReadAll (virfile.c:1613)
 ==2413993==    by 0xC2CC488: virGetSecretsEncryptionKey (secret_config.c:93)
 ==2413993==    by 0xC2CC488: virSecretDaemonConfigNew (secret_config.c:162)
 ==2413993==    by 0xC2CADFD: secretStateInitialize (secret_driver.c:533)
 ==2413993==    by 0x4BABC76: virStateInitialize (libvirt.c:667)
 ==2413993==    by 0x40148D4: daemonRunStateInit (remote_daemon.c:583)
 ==2413993==    by 0x49BB8A5: virThreadHelper (virthread.c:256)
 ==2413993==    by 0x52DD463: start_thread (in /usr/lib64/libc.so.6)

Fixes: 1c86748cf1
Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Pavel Hrdina <phrdina@redhat.com>
2026-03-27 06:53:07 +01:00
Peter Krempa 4a363bdfe9 qemu: driver: Don't leak 'qemu_driver->backupPorts'
==2413993== 23 (16 direct, 7 indirect) bytes in 1 blocks are definitely lost in loss record 1,238 of 4,225
 ==2413993==    at 0x48FC683: calloc (vg_replace_malloc.c:1678)
 ==2413993==    by 0x4ED0A51: g_malloc0 (in /usr/lib64/libglib-2.0.so.0.8600.4)
 ==2413993==    by 0x49A62CF: virPortAllocatorRangeNew (virportallocator.c:104)
 ==2413993==    by 0xEA35F27: qemuStateInitialize (qemu_driver.c:723)
 ==2413993==    by 0x4BABC76: virStateInitialize (libvirt.c:667)
 ==2413993==    by 0x40148D4: daemonRunStateInit (remote_daemon.c:583)
 ==2413993==    by 0x49BB8A5: virThreadHelper (virthread.c:256)
 ==2413993==    by 0x52DD463: start_thread (in /usr/lib64/libc.so.6)
 ==2413993==    by 0x5360413: clone (in /usr/lib64/libc.so.6)

Fixes: 36cf50f85b
Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Pavel Hrdina <phrdina@redhat.com>
2026-03-27 06:53:07 +01:00
Jiri Denemark f590a18da6 po: Refresh potfile for v12.2.0
Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
v12.2.0-rc1
2026-03-26 13:37:04 +01:00
Remus-Gabriel Chelu 9d99334bba Translated using Weblate (Romanian)
Currently translated at 55.1% (6050 of 10975 strings)

Translation: libvirt/libvirt
Translate-URL: https://translate.fedoraproject.org/projects/libvirt/libvirt/ro/

Signed-off-by: Remus-Gabriel Chelu <remusgabriel.chelu@disroot.org>

Translated using Weblate (Romanian)

Currently translated at 52.6% (5775 of 10975 strings)

Translation: libvirt/libvirt
Translate-URL: https://translate.fedoraproject.org/projects/libvirt/libvirt/ro/

Signed-off-by: Remus-Gabriel Chelu <remusgabriel.chelu@disroot.org>
2026-03-26 11:44:23 +00:00
김인수 d3667c0bad Translated using Weblate (Korean)
Currently translated at 100.0% (10975 of 10975 strings)

Translation: libvirt/libvirt
Translate-URL: https://translate.fedoraproject.org/projects/libvirt/libvirt/ko/

Signed-off-by: 김인수 <simmon@nplob.com>
2026-03-26 11:44:23 +00:00
jianqing yan d1223c502f Translated using Weblate (Chinese (Simplified) (zh_CN))
Currently translated at 98.3% (10796 of 10975 strings)

Translation: libvirt/libvirt
Translate-URL: https://translate.fedoraproject.org/projects/libvirt/libvirt/zh_CN/

Signed-off-by: jianqing yan <yanjianqing@kylinos.cn>
2026-03-26 11:44:23 +00:00
Fco. Javier F. Serrador a99d11bd22 Translated using Weblate (Spanish)
Currently translated at 93.7% (10291 of 10975 strings)

Translation: libvirt/libvirt
Translate-URL: https://translate.fedoraproject.org/projects/libvirt/libvirt/es/

Signed-off-by: "Fco. Javier F. Serrador" <fserrador@gmail.com>

Translated using Weblate (Spanish)

Currently translated at 93.3% (10243 of 10975 strings)

Translation: libvirt/libvirt
Translate-URL: https://translate.fedoraproject.org/projects/libvirt/libvirt/es/

Signed-off-by: "Fco. Javier F. Serrador" <fserrador@gmail.com>

Translated using Weblate (Spanish)

Currently translated at 92.7% (10176 of 10975 strings)

Translation: libvirt/libvirt
Translate-URL: https://translate.fedoraproject.org/projects/libvirt/libvirt/es/

Signed-off-by: "Fco. Javier F. Serrador" <fserrador@gmail.com>
2026-03-26 11:44:23 +00:00
Nicolás Gal b1d88f766d Translated using Weblate (Spanish)
Currently translated at 90.5% (9934 of 10975 strings)

Translation: libvirt/libvirt
Translate-URL: https://translate.fedoraproject.org/projects/libvirt/libvirt/es/

Signed-off-by: Nicolás Gal <nialegal@yandex.com>
2026-03-26 11:44:23 +00:00
Weblate 616c618a2f Translated using Weblate (Spanish)
Currently translated at 90.4% (9932 of 10975 strings)

Translation: libvirt/libvirt
Translate-URL: https://translate.fedoraproject.org/projects/libvirt/libvirt/es/

Signed-off-by: Weblate <noreply-mt-weblate@weblate.org>
2026-03-26 11:44:23 +00:00
Fco. Javier F. Serrador 397b1f9cf0 Translated using Weblate (Spanish)
Currently translated at 90.4% (9932 of 10975 strings)

Translation: libvirt/libvirt
Translate-URL: https://translate.fedoraproject.org/projects/libvirt/libvirt/es/

Signed-off-by: "Fco. Javier F. Serrador" <fserrador@gmail.com>
2026-03-26 11:44:23 +00:00
Américo Monteiro 0fa4d624fe Translated using Weblate (Portuguese)
Currently translated at 100.0% (10975 of 10975 strings)

Translation: libvirt/libvirt
Translate-URL: https://translate.fedoraproject.org/projects/libvirt/libvirt/pt/

Signed-off-by: Américo Monteiro <a_monteiro@gmx.com>
2026-03-26 11:44:22 +00:00
Temuri Doghonadze 26263b5600 Translated using Weblate (Georgian)
Currently translated at 4.6% (514 of 10975 strings)

Translation: libvirt/libvirt
Translate-URL: https://translate.fedoraproject.org/projects/libvirt/libvirt/ka/

Signed-off-by: Temuri Doghonadze <temuri.doghonadze@gmail.com>
2026-03-26 11:44:22 +00:00
Andi Chandler a8ee17c8a3 Translated using Weblate (English (United Kingdom))
Currently translated at 47.9% (5267 of 10975 strings)

Translation: libvirt/libvirt
Translate-URL: https://translate.fedoraproject.org/projects/libvirt/libvirt/en_GB/

Signed-off-by: Andi Chandler <andi@gowling.com>

Translated using Weblate (English (United Kingdom))

Currently translated at 47.9% (5264 of 10975 strings)

Translation: libvirt/libvirt
Translate-URL: https://translate.fedoraproject.org/projects/libvirt/libvirt/en_GB/

Signed-off-by: Andi Chandler <andi@gowling.com>

Translated using Weblate (English (United Kingdom))

Currently translated at 47.9% (5261 of 10975 strings)

Translation: libvirt/libvirt
Translate-URL: https://translate.fedoraproject.org/projects/libvirt/libvirt/en_GB/

Signed-off-by: Andi Chandler <andi@gowling.com>
2026-03-26 11:44:22 +00:00
Michal Privoznik 0f52d35b1b virxml: Fix virXMLPropTristateBoolAllowDefault() documentation
The documentation to virXMLPropTristateBoolAllowDefault() refers
to itself while it meant to refer to virXMLPropTristateBool().

Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2026-03-26 12:43:43 +01:00
Martin Kletzander a52ba0ae7b tests/virhostcputest: Remove duplicit g_autofree
Signed-off-by: Martin Kletzander <mkletzan@redhat.com>
2026-03-25 15:44:57 +01:00
Martin Kletzander 83f49f6335 util: Fix comment in virBitmapNewData
Signed-off-by: Martin Kletzander <mkletzan@redhat.com>
2026-03-25 15:44:57 +01:00
Peter Krempa e2e1b02ae4 qemuDomainGetBlockInfo: Add debug statement when updating disk physical size
Update of the physical size fetches it from stat()-ing the file on disk,
which is not visible in the logs so the information can't be pieced back
together as it's the case with the data fetched from the qemu monitor.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2026-03-25 09:28:07 +01:00
Peter Krempa ce56dc26f4 qemu: monitor: Separate stats from capacity properties in qemuBlockStats
Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2026-03-25 09:28:07 +01:00
Peter Krempa 5f081c4b2e qemuDomainGetStatsBlockExportDisk: Export stats also for 'dataStore'
For qcow2 disk images backed by another storage for storing the actual
blocks (the 'data-file' feature) we forgot to export stats in the bulk
stats API.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2026-03-25 09:28:07 +01:00
Peter Krempa d731d54a57 virDomainGetBlockInfo: Log 'disk' argument
The 'disk' argument was forgotten in the VIR_DOMAIN_DEBUG statement so
the logs don't contain which disk the caller wanted the stats for.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2026-03-25 09:28:07 +01:00
Shalini Chellathurai Saroja 9fa6beff05 qemuxmlconftest: Update 's390x' tests using 'virt-4.2' machine type
The 'virt 4.2' machine type is removed in QEMU 10.2. So pin the
existing tests to qemu-10.0 and add tests for 'virt-10.0'
machine type.

Signed-off-by: Shalini Chellathurai Saroja <shalini@linux.ibm.com>
Reviewed-by: Boris Fiuczynski <fiuczy@linux.ibm.com>
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
2026-03-24 18:00:16 +01:00
Peter Krempa 4537c0b870 qemuMigrationSrcBeginPhase: Don't call 'qemuBlockNodesEnsureActive' with offline VM
Commits 7b5566ce67 and f879d5f403 ( v11.8.0-92-gf879d5f403 )
moved around code for re-activating block backends after migration.
While previously it was done when migration failed now we do it when we
need qemu to do some block operations.

'qemuBlockNodesEnsureActive' is thus called also when 'VIR_MIGRATE_OFFLINE'
is used. This doesn't cause failure similar to previous patch only due
to a conincidence as 'qemuCaps' wasn't initialized yet and thus we
assume that QEMU doesn't support 'blockdev-set-active' and skip all
monitor code.

Make the code more robust and explicit by calling
'qemuBlockNodesEnsureActive' only on active VMs during migration.

Fixes: 7b5566ce67
Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Jiri Denemark <jdenemar@redhat.com>
2026-03-24 17:59:35 +01:00
Peter Krempa 59fde80f39 qemuMigrationSrcBeginXML: Don't call 'qemuMigrationSrcBeginPhaseBlockDirtyBitmaps' with offline VM
Commit a4f610ff3f made the call to
'qemuMigrationSrcBeginPhaseBlockDirtyBitmaps' inside
'qemuMigrationSrcBeginXML' unconditional. This unfortunately means that
it was called also with 'VIR_MIGRATE_OFFLINE'.

Attempting to enter the monitor in such case results in an error:

 error: operation failed: domain is no longer running

Restrict the call only to non-offline migration.

Fixes: a4f610ff3f
Resolves: https://redhat.atlassian.net/browse/RHEL-156800
Closes: https://gitlab.com/libvirt/libvirt/-/work_items/865
Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Jiri Denemark <jdenemar@redhat.com>
2026-03-24 17:59:35 +01:00
Peter Krempa 623844bf2a virsh: migrate: Add support for VIR_MIGRATE_PARAM_MIGRATE_DISKS_TARGET_ZERO
Add '--migrate-disks-target-zero' to pass the list of pre-zeroed disk
images.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2026-03-24 17:59:16 +01:00
Peter Krempa f5fc45efea qemu: migration: Introduce 'VIR_MIGRATE_PARAM_MIGRATE_DISKS_TARGET_ZERO'
The migration parameter allows enumerating disks selected for migration
where the hypervisor may assume that the user pre-cleared the
destination images of the block copy so that all offsets read 0x00 and
thus optimize clearing of such targets.

This patch adds the 'VIR_MIGRATE_PARAM_MIGRATE_DISKS_TARGET_ZERO'
parameter and also plumbs it for the qemu driver (mirrors plumbing for
'migrate_disks_detect_zeroes').

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2026-03-24 17:59:16 +01:00
Peter Krempa 6670924a0d virsh: Add support for 'VIR_DOMAIN_BLOCK_COPY_TARGET_ZEROED' as '--dest-is-zero'
Add the aforementioned flag for 'virsh blockcopy'.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2026-03-24 17:59:16 +01:00
Peter Krempa aa7d3142aa qemu: Add VIR_DOMAIN_BLOCK_COPY_TARGET_ZEROED flag for virDomainBlockCopy
Allow the hypervisor to assume that the user already passed a zeroed-out
image to optimize the copy. Implement the feature for the qemu driver.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2026-03-24 17:59:16 +01:00
Peter Krempa b7e51e875a qemu: monitor: Add support for 'target-is-zero' option of 'blockdev-mirror'
Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2026-03-24 17:59:16 +01:00
Peter Krempa aba64fc539 qemu: capabilities: Introduce QEMU_CAPS_BLOCKDEV_MIRROR_TARGET_IS_ZERO
The 'target-is-zero' option of 'blockdev-mirror' allows telling qemu to
skip zeroing the mirror target if the user certifies that it's empty. It
was introduced in qemu-10.1.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2026-03-24 17:59:16 +01:00
Peter Krempa f7ae47274a qemuMigrationSrcPerformTunnel: Remove 'migrate_disks' argument
Any QEMU we support requires use of NBD for disk migration which is not
supported with tunnelled migration. This is validated in
'qemuMigrationSrcBeginPhase'. Passing the list of disks to migrate is
thus pointless. Remove the argument.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2026-03-24 17:59:15 +01:00
Peter Krempa 7abfcef53c qemuTranslateSnapshotDiskSourcePool: Use proper error code
The operation is not implemented so it's not really an internal error.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2026-03-24 17:58:56 +01:00
Peter Krempa d9e2db9445 qemu: conf: Don't use VIR_ERR_INTERNAL_ERROR for config file parsing errors
When parsing port ranges for the port allocator VIR_ERR_INTERNAL_ERROR
is not the right error code for errors on the user-supplied numbers. Use
VIR_ERR_CONF_SYNTAX instead.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2026-03-24 17:58:56 +01:00
Peter Krempa 42ef9a200a qemu: backup: Move setup of VIR_STORAGE_NET_HOST_TRANS_FD to qemuBackupPrepare
Consolidate the code under qemuBackupPrepare.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2026-03-24 17:58:56 +01:00
Peter Krempa 231ae15e97 qemuxmlconftest: Add missing test for <readonly> attribute of p9-fs devices
Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
2026-03-24 17:58:42 +01:00
Peter Krempa 20ecc25b91 qemuBuildFSStr: Properly format 'readonly' attribute
Short-form booleans are deprecated in qemu since qemu 6.0. Switch to the
proper 'readonly=on' format.

Closes: https://gitlab.com/libvirt/libvirt/-/work_items/864
Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
2026-03-24 17:58:42 +01:00