aboutsummaryrefslogtreecommitdiff
path: root/qga/vss-win32/requester.cpp
diff options
context:
space:
mode:
authorPeter Maydell <peter.maydell@linaro.org>2017-10-28 09:59:38 +0100
committerPeter Maydell <peter.maydell@linaro.org>2017-10-28 09:59:38 +0100
commit953e35f69c302522c280e8d4e05995afc31da051 (patch)
tree0a2bd2140eab7e79b561e91663501781417ba31b /qga/vss-win32/requester.cpp
parenta93ece47fd9edbd4558db24300056c9a57d3bcd4 (diff)
parent8cedc80555e5a395a4fda7130b0115015e775c48 (diff)
downloadqemu-953e35f69c302522c280e8d4e05995afc31da051.zip
qemu-953e35f69c302522c280e8d4e05995afc31da051.tar.gz
qemu-953e35f69c302522c280e8d4e05995afc31da051.tar.bz2
Merge remote-tracking branch 'remotes/mdroth/tags/qga-pull-2017-10-26-tag' into staging
qemu-ga patch queue for 2.11 * support for network interface stats * w32: improvements for guest-set-time * w32: fix a hang with guest-fsfreeze-freeze when timeout occurs during heavy I/O * w32: fix faulty error-handling in VSS/fsfreeze COM registration # gpg: Signature made Fri 27 Oct 2017 02:11:53 BST # gpg: using RSA key 0x3353C9CEF108B584 # gpg: Good signature from "Michael Roth <flukshun@gmail.com>" # gpg: aka "Michael Roth <mdroth@utexas.edu>" # gpg: aka "Michael Roth <mdroth@linux.vnet.ibm.com>" # Primary key fingerprint: CEAC C9E1 5534 EBAB B82D 3FA0 3353 C9CE F108 B584 * remotes/mdroth/tags/qga-pull-2017-10-26-tag: qga-win: fix error-handling in getNameByStringSID() qga: add network stats to guest-network-get-interfaces qga-win: Updating guest_set_time action qga-win: don't hang if vss hold writes timeout Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Diffstat (limited to 'qga/vss-win32/requester.cpp')
-rw-r--r--qga/vss-win32/requester.cpp12
1 files changed, 12 insertions, 0 deletions
diff --git a/qga/vss-win32/requester.cpp b/qga/vss-win32/requester.cpp
index 301762d..3d9c971 100644
--- a/qga/vss-win32/requester.cpp
+++ b/qga/vss-win32/requester.cpp
@@ -419,6 +419,16 @@ void requester_freeze(int *num_vols, ErrorSet *errset)
break;
}
}
+
+ if (wait_status == WAIT_TIMEOUT) {
+ err_set(errset, E_FAIL,
+ "timeout when try to receive Frozen event from VSS provider");
+ /* If we are here, VSS had timeout.
+ * Don't call AbortBackup, just return directly.
+ */
+ goto out1;
+ }
+
if (wait_status != WAIT_OBJECT_0) {
err_set(errset, E_FAIL,
"couldn't receive Frozen event from VSS provider");
@@ -432,6 +442,8 @@ out:
if (vss_ctx.pVssbc) {
vss_ctx.pVssbc->AbortBackup();
}
+
+out1:
requester_cleanup();
CoUninitialize();
}