[PATCH v2 1/2] qemu: snapshot: Delete leftover overlay files for <transient/> disks

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



When a VM is terminated by host reboot libvirt doesn't get to cleaning
out the temporary overlay file used for transient disks. Since we create
those files with a very specific suffix it's almost guaranteed that if
it exists it's a leftover from a libvirt run. Delete them instead of
complaining to preserve functionality.

Closes: https://gitlab.com/libvirt/libvirt/-/issues/684
Signed-off-by: Peter Krempa <pkrempa@xxxxxxxxxx>
---
 src/qemu/qemu_snapshot.c | 10 ++++++----
 1 file changed, 6 insertions(+), 4 deletions(-)

diff --git a/src/qemu/qemu_snapshot.c b/src/qemu/qemu_snapshot.c
index 1187ebf276..795522da21 100644
--- a/src/qemu/qemu_snapshot.c
+++ b/src/qemu/qemu_snapshot.c
@@ -1287,10 +1287,12 @@ qemuSnapshotGetTransientDiskDef(virDomainDiskDef *domdisk,
                                           domdisk->src->path, suffix);

     if (virFileExists(snapdisk->src->path)) {
-        virReportError(VIR_ERR_OPERATION_UNSUPPORTED,
-                       _("Overlay file '%1$s' for transient disk '%2$s' already exists"),
-                       snapdisk->src->path, domdisk->dst);
-        return NULL;
+        if (unlink(snapdisk->src->path) != 0) {
+            virReportSystemError(errno,
+                                 _("Failed to delete overlay file '%1$s' for transient disk '%2$s'"),
+                                 snapdisk->src->path, domdisk->dst);
+            return NULL;
+        }
     }

     return g_steal_pointer(&snapdisk);
-- 
2.47.0




[Index of Archives]     [Virt Tools]     [Libvirt Users]     [Lib OS Info]     [Fedora Users]     [Fedora Desktop]     [Fedora SELinux]     [Big List of Linux Books]     [Yosemite News]     [KDE Users]     [Fedora Tools]

  Powered by Linux