]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
qemu_snapshot: allow reverting to external disk only snapshot
authorPavel Hrdina <phrdina@redhat.com>
Wed, 31 Jan 2024 16:14:28 +0000 (17:14 +0100)
committerPavel Hrdina <phrdina@redhat.com>
Wed, 29 Jan 2025 14:50:19 +0000 (15:50 +0100)
When snapshot is created with disk-only flag it is always external
snapshot without memory state. Historically when there was not support
to revert external snapshots this produced error message.

    error: Failed to revert snapshot s1
    error: internal error: Invalid target domain state 'disk-snapshot'. Refusing snapshot reversion

Now we can simply consider this as reverting to offline snapshot as the
possible damage to file system is already done at the point of snapshot
creation.

Resolves: https://issues.redhat.com/browse/RHEL-21549
Signed-off-by: Pavel Hrdina <phrdina@redhat.com>
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
src/qemu/qemu_snapshot.c

index 80cd54bf3360bb6e06a463df289f48f90eb8609d..c5fa1b813f8d64b9f024d969d7fbf89ec28f73c0 100644 (file)
@@ -2870,6 +2870,7 @@ qemuSnapshotRevert(virDomainObj *vm,
     case VIR_DOMAIN_SNAPSHOT_SHUTDOWN:
     case VIR_DOMAIN_SNAPSHOT_SHUTOFF:
     case VIR_DOMAIN_SNAPSHOT_CRASHED:
+    case VIR_DOMAIN_SNAPSHOT_DISK_SNAPSHOT:
         ret = qemuSnapshotRevertInactive(vm, snapshot, snap,
                                          driver, cfg,
                                          &inactiveConfig,
@@ -2881,8 +2882,6 @@ qemuSnapshotRevert(virDomainObj *vm,
                        _("qemu doesn't support reversion of snapshot taken in PMSUSPENDED state"));
         goto endjob;
 
-    case VIR_DOMAIN_SNAPSHOT_DISK_SNAPSHOT:
-        /* Rejected earlier as an external snapshot */
     case VIR_DOMAIN_SNAPSHOT_NOSTATE:
     case VIR_DOMAIN_SNAPSHOT_BLOCKED:
     case VIR_DOMAIN_SNAPSHOT_LAST: