Current functionarity of qemu-ga VSS provider is limited to implement filesystems freeze, and doesn't support the creation of shadow copies within the guest. However, when no other hardware snapshot provider is installed, VSS may choose qemu-ga VSS provider to create shadow copies and fail with VSS_E_UNEXPECTED_PROVIDER_ERROR. Similar issue occurs when the requester deletes shadow copies.
This patchset fix this issue by telling VSS that the volume is not supported by qemu-ga VSS provider when it is kicked by other requesters. It also fixes wrong error handling around OpenEvent/CreateEvent WinAPI, which returns NULL instead of INVALID_HANDLE_VALUE on errors. https://bugzilla.redhat.com/show_bug.cgi?id=1036341 --- Tomoki Sekiyama (3): qga: vss-win32: Use NULL as an invalid pointer for OpenEvent and CreateEvent qga: vss-win32: Fix interference with snapshot creation by other VSS requesters qga: vss-win32: Fix interference with snapshot deletion by other VSS request qga/vss-win32/provider.cpp | 21 ++++++++++--- qga/vss-win32/requester.cpp | 70 ++++++++++++++++++++----------------------- 2 files changed, 49 insertions(+), 42 deletions(-) -- Tomoki Sekiyama