• E
    snapshot: properly revert qemu to offline snapshots · 25fb3ef1
    Eric Blake 提交于
    Commit 5e47785b broke reverts to offline system checkpoint snapshots
    with older qemu, since there is no longer any code path to use
    qemu -loadvm on next boot.  Meanwhile, reverts to offline system
    checkpoints have been broken for newer qemu, both before and
    after that commit, since -loadvm no longer works to revert to
    disk state without accompanying vm state.  Fix both of these by
    using qemu-img to revert disk state.
    
    Meanwhile, consolidate the (now 3) clients of a qemu-img iteration
    over all disks of a VM into one function, so that any future
    algorithmic fixes to the FIXMEs in that function after partial
    loop iterations are dealt with at once.  That does mean that this
    patch doesn't handle partial reverts very well, but we're not
    making the situation any worse in this patch.
    
    * src/qemu/qemu_driver.c (qemuDomainRevertToSnapshot): Use
    qemu-img rather than 'qemu -loadvm' to revert to offline snapshot.
    (qemuDomainSnapshotRevertInactive): New helper.
    (qemuDomainSnapshotCreateInactive): Factor guts...
    (qemuDomainSnapshotForEachQcow2): ...into new helper.
    (qemuDomainSnapshotDiscard): Use it.
    25fb3ef1
qemu_driver.c 301.3 KB