mirror of
https://github.com/libvirt/libvirt.git
synced 2026-10-02 12:20:06 -05:00
af095bfa0de52819eec15be734798ea11cac0411
While trying to refactor the backing file chain, I noticed that if you have a self-referential qcow2 file via a relative name: qemu-img create -f qcow2 loop 10M qemu-img rebase -u -f qcow2 -F qcow2 -b loop loop then libvirt was creating a chain 2 deep before realizing it had hit a loop; furthermore, virStorageFileChainCheckBroken was not identifying the chain as broken. With this patch, the loop is detected when the chain is only 1 deep; still enough for storage volume XML to display the file, but now with a proper error report about where the loop was found. This patch adds a parameter to virStorageFileGetMetadataRecurse, so that errors at the top of the chain remain unchanged; messages issued for backing files now use the name provided by the user instead of the canonical name (for VDSM, which uses relative symlinks to device mapper block devices, this is actually more useful). * src/util/virstoragefile.c (virStorageFileGetMetadataRecurse): Add parameter, require canonical path up front. Mark chain broken on OOM or loop detection. (virStorageFileGetMetadata): Pass in canonical name. Signed-off-by: Eric Blake <eblake@redhat.com>
LibVirt : simple API for virtualization
Libvirt is a C toolkit to interact with the virtualization capabilities
of recent versions of Linux (and other OSes). It is free software
available under the GNU Lesser General Public License. Virtualization of
the Linux Operating System means the ability to run multiple instances of
Operating Systems concurrently on a single hardware system where the basic
resources are driven by a Linux instance. The library aim at providing
long term stable C API initially for the Xen paravirtualization but
should be able to integrate other virtualization mechanisms if needed.
Daniel Veillard <veillard@redhat.com>
Description
Read-only mirror. Please submit merge requests / issues to https://gitlab.com/libvirt/libvirt
990 MiB
0 Stars
3 Watchers
0 Forks
Languages
C
95.2%
Python
2%
Meson
0.9%
Shell
0.6%
Perl
0.5%
Other
0.7%