]> xenbits.xensource.com Git - libvirt.git/commit
snapshot: make quiesce a bit safer
authorEric Blake <eblake@redhat.com>
Fri, 16 Mar 2012 20:43:58 +0000 (14:43 -0600)
committerEric Blake <eblake@redhat.com>
Mon, 19 Mar 2012 16:58:18 +0000 (10:58 -0600)
commit7c736bab06479ccec59df69fb79a5c06d112d8fb
tree21211dfb5594ca885fa68fcbde54b83d61b28ef1
parent3992cfdd793bcf7c909388226896b6cb42e39b0d
snapshot: make quiesce a bit safer

If a guest is paused, we were silently ignoring the quiesce flag,
which results in unclean snapshots, contrary to the intent of the
flag.  Since we can't quiesce without guest agent support, we should
instead fail if the guest is not running.

Meanwhile, if we attempt a quiesce command, but the guest agent
doesn't respond, and we time out, we may have left the command
pending on the guest's queue, and when the guest resumes parsing
commands, it will freeze even though our command is no longer
around to issue a thaw.  To be safe, we must _always_ pair every
quiesce call with a counterpart thaw, even if the quiesce call
failed due to a timeout, so that if a guest wakes up and starts
processing a command backlog, it will not get stuck in a frozen
state.

* src/qemu/qemu_driver.c (qemuDomainSnapshotCreateDiskActive):
Always issue thaw after a quiesce, even if quiesce failed.
(qemuDomainSnapshotFSThaw): Add a parameter.
src/qemu/qemu_driver.c