diff options
author | Peter Maydell <peter.maydell@linaro.org> | 2017-10-28 09:59:38 +0100 |
---|---|---|
committer | Peter Maydell <peter.maydell@linaro.org> | 2017-10-28 09:59:38 +0100 |
commit | 953e35f69c302522c280e8d4e05995afc31da051 (patch) | |
tree | 0a2bd2140eab7e79b561e91663501781417ba31b /qga/vss-win32/requester.cpp | |
parent | a93ece47fd9edbd4558db24300056c9a57d3bcd4 (diff) | |
parent | 8cedc80555e5a395a4fda7130b0115015e775c48 (diff) | |
download | qemu-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.cpp | 12 |
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(); } |