* [Qemu-devel] [PATCH] No FreeWriterMetadata() after GatherWriterMetadata() in requester.cpp @ 2015-09-26 0:46 Guangmu Zhu 2015-09-26 1:56 ` Guangmu Zhu 0 siblings, 1 reply; 3+ messages in thread From: Guangmu Zhu @ 2015-09-26 0:46 UTC (permalink / raw) To: mdroth; +Cc: Kevin Wolf, qemu-devel [-- Attachment #1: Type: text/plain, Size: 1751 bytes --] FreeWriterMetadata() should be called if GatherWriterMetadata() succeeded. diff --git a/qga/vss-win32/requester.cpp b/qga/vss-win32/requester.cpp index 9b3e310..337f722 100644 --- a/qga/vss-win32/requester.cpp +++ b/qga/vss-win32/requester.cpp @@ -47,6 +47,7 @@ static struct QGAVSSContext { HANDLE hEventFrozen; /* notify fs/writer freeze from provider */ HANDLE hEventThaw; /* request provider to thaw */ HANDLE hEventTimeout; /* notify timeout in provider */ + BOOL bWriterMetadataGathered; /* TRUE if GatherWriterMetadata succeed */ int cFrozenVols; /* number of frozen volumes */ } vss_ctx; @@ -92,6 +93,8 @@ STDAPI requester_init(void) static void requester_cleanup(void) { + HRESULT hr = S_OK; + if (vss_ctx.hEventFrozen) { CloseHandle(vss_ctx.hEventFrozen); vss_ctx.hEventFrozen = NULL; @@ -108,6 +111,12 @@ static void requester_cleanup(void) vss_ctx.pAsyncSnapshot->Release(); vss_ctx.pAsyncSnapshot = NULL; } + if (vss_ctx.bWriterMetadataGathered) { + hr = vss_ctx.pVssbc->FreeWriterMetadata(); + if (FAILED(hr)) { + err_set(errset, hr, "failed to free writer metadata"); + } + } if (vss_ctx.pVssbc) { vss_ctx.pVssbc->Release(); vss_ctx.pVssbc = NULL; @@ -323,8 +332,10 @@ void requester_freeze(int *num_vols, ErrorSet *errset) } if (FAILED(hr)) { err_set(errset, hr, "failed to gather writer metadata"); + vss_ctx.bWriterMetadataGathered = FALSE; goto out; } + vss_ctx.bWriterMetadataGathered = TRUE; AddComponents(errset); if (err_is_set(errset)) { [-- Attachment #2: Type: text/html, Size: 2888 bytes --] ^ permalink raw reply related [flat|nested] 3+ messages in thread
* Re: [Qemu-devel] [PATCH] No FreeWriterMetadata() after GatherWriterMetadata() in requester.cpp 2015-09-26 0:46 [Qemu-devel] [PATCH] No FreeWriterMetadata() after GatherWriterMetadata() in requester.cpp Guangmu Zhu @ 2015-09-26 1:56 ` Guangmu Zhu 2015-09-29 1:17 ` Guangmu Zhu 0 siblings, 1 reply; 3+ messages in thread From: Guangmu Zhu @ 2015-09-26 1:56 UTC (permalink / raw) To: mdroth; +Cc: Kevin Wolf, qemu-devel [-- Attachment #1: Type: text/plain, Size: 3653 bytes --] Correct patch format. Signed-off-by: Guangmu Zhu <guangmuzhu@gmail.com> --- qga/vss-win32/requester.cpp | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/qga/vss-win32/requester.cpp b/qga/vss-win32/requester.cpp index 9b3e310..337f722 100644 --- a/qga/vss-win32/requester.cpp +++ b/qga/vss-win32/requester.cpp @@ -47,6 +47,7 @@ static struct QGAVSSContext { HANDLE hEventFrozen; /* notify fs/writer freeze from provider */ HANDLE hEventThaw; /* request provider to thaw */ HANDLE hEventTimeout; /* notify timeout in provider */ + BOOL bWriterMetadataGathered; /* TRUE if GatherWriterMetadata succeed */ int cFrozenVols; /* number of frozen volumes */ } vss_ctx; @@ -92,6 +93,8 @@ STDAPI requester_init(void) static void requester_cleanup(void) { + HRESULT hr = S_OK; + if (vss_ctx.hEventFrozen) { CloseHandle(vss_ctx.hEventFrozen); vss_ctx.hEventFrozen = NULL; @@ -108,6 +111,12 @@ static void requester_cleanup(void) vss_ctx.pAsyncSnapshot->Release(); vss_ctx.pAsyncSnapshot = NULL; } + if (vss_ctx.bWriterMetadataGathered) { + hr = vss_ctx.pVssbc->FreeWriterMetadata(); + if (FAILED(hr)) { + err_set(errset, hr, "failed to free writer metadata"); + } + } if (vss_ctx.pVssbc) { vss_ctx.pVssbc->Release(); vss_ctx.pVssbc = NULL; @@ -323,8 +332,10 @@ void requester_freeze(int *num_vols, ErrorSet *errset) } if (FAILED(hr)) { err_set(errset, hr, "failed to gather writer metadata"); + vss_ctx.bWriterMetadataGathered = FALSE; goto out; } + vss_ctx.bWriterMetadataGathered = TRUE; AddComponents(errset); if (err_is_set(errset)) { -- 2.1.4 ------------------------------------ FreeWriterMetadata() should be called if GatherWriterMetadata() succeeded. diff --git a/qga/vss-win32/requester.cpp b/qga/vss-win32/requester.cpp index 9b3e310..337f722 100644 --- a/qga/vss-win32/requester.cpp +++ b/qga/vss-win32/requester.cpp @@ -47,6 +47,7 @@ static struct QGAVSSContext { HANDLE hEventFrozen; /* notify fs/writer freeze from provider */ HANDLE hEventThaw; /* request provider to thaw */ HANDLE hEventTimeout; /* notify timeout in provider */ + BOOL bWriterMetadataGathered; /* TRUE if GatherWriterMetadata succeed */ int cFrozenVols; /* number of frozen volumes */ } vss_ctx; @@ -92,6 +93,8 @@ STDAPI requester_init(void) static void requester_cleanup(void) { + HRESULT hr = S_OK; + if (vss_ctx.hEventFrozen) { CloseHandle(vss_ctx.hEventFrozen); vss_ctx.hEventFrozen = NULL; @@ -108,6 +111,12 @@ static void requester_cleanup(void) vss_ctx.pAsyncSnapshot->Release(); vss_ctx.pAsyncSnapshot = NULL; } + if (vss_ctx.bWriterMetadataGathered) { + hr = vss_ctx.pVssbc->FreeWriterMetadata(); + if (FAILED(hr)) { + err_set(errset, hr, "failed to free writer metadata"); + } + } if (vss_ctx.pVssbc) { vss_ctx.pVssbc->Release(); vss_ctx.pVssbc = NULL; @@ -323,8 +332,10 @@ void requester_freeze(int *num_vols, ErrorSet *errset) } if (FAILED(hr)) { err_set(errset, hr, "failed to gather writer metadata"); + vss_ctx.bWriterMetadataGathered = FALSE; goto out; } + vss_ctx.bWriterMetadataGathered = TRUE; AddComponents(errset); if (err_is_set(errset)) { [-- Attachment #2: Type: text/html, Size: 6051 bytes --] ^ permalink raw reply related [flat|nested] 3+ messages in thread
* Re: [Qemu-devel] [PATCH] No FreeWriterMetadata() after GatherWriterMetadata() in requester.cpp 2015-09-26 1:56 ` Guangmu Zhu @ 2015-09-29 1:17 ` Guangmu Zhu 0 siblings, 0 replies; 3+ messages in thread From: Guangmu Zhu @ 2015-09-29 1:17 UTC (permalink / raw) To: mdroth; +Cc: Kevin Wolf, qemu-devel [-- Attachment #1: Type: text/plain, Size: 2126 bytes --] I sent the patch some days ago and received no response. I have no idea if this means the patch is not Ok or just no one had interest in it... Sincerely. Guangmu Zhu -------------------------------------- FreeWriterMetadata() should be called if GatherWriterMetadata() succeeded. Signed-off-by: Guangmu Zhu <guangmuzhu@gmail.com> --- qga/vss-win32/requester.cpp | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/qga/vss-win32/requester.cpp b/qga/vss-win32/requester.cpp index 9b3e310..337f722 100644 --- a/qga/vss-win32/requester.cpp +++ b/qga/vss-win32/requester.cpp @@ -47,6 +47,7 @@ static struct QGAVSSContext { HANDLE hEventFrozen; /* notify fs/writer freeze from provider */ HANDLE hEventThaw; /* request provider to thaw */ HANDLE hEventTimeout; /* notify timeout in provider */ + BOOL bWriterMetadataGathered; /* TRUE if GatherWriterMetadata succeed */ int cFrozenVols; /* number of frozen volumes */ } vss_ctx; @@ -92,6 +93,8 @@ STDAPI requester_init(void) static void requester_cleanup(void) { + HRESULT hr = S_OK; + if (vss_ctx.hEventFrozen) { CloseHandle(vss_ctx.hEventFrozen); vss_ctx.hEventFrozen = NULL; @@ -108,6 +111,12 @@ static void requester_cleanup(void) vss_ctx.pAsyncSnapshot->Release(); vss_ctx.pAsyncSnapshot = NULL; } + if (vss_ctx.bWriterMetadataGathered) { + hr = vss_ctx.pVssbc->FreeWriterMetadata(); + if (FAILED(hr)) { + err_set(errset, hr, "failed to free writer metadata"); + } + } if (vss_ctx.pVssbc) { vss_ctx.pVssbc->Release(); vss_ctx.pVssbc = NULL; @@ -323,8 +332,10 @@ void requester_freeze(int *num_vols, ErrorSet *errset) } if (FAILED(hr)) { err_set(errset, hr, "failed to gather writer metadata"); + vss_ctx.bWriterMetadataGathered = FALSE; goto out; } + vss_ctx.bWriterMetadataGathered = TRUE; AddComponents(errset); if (err_is_set(errset)) { -- 2.1.4 [-- Attachment #2: Type: text/html, Size: 3439 bytes --] ^ permalink raw reply related [flat|nested] 3+ messages in thread
end of thread, other threads:[~2015-09-29 1:18 UTC | newest] Thread overview: 3+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2015-09-26 0:46 [Qemu-devel] [PATCH] No FreeWriterMetadata() after GatherWriterMetadata() in requester.cpp Guangmu Zhu 2015-09-26 1:56 ` Guangmu Zhu 2015-09-29 1:17 ` Guangmu Zhu
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).