From 3a6cf6fc167aed69f54a1e9800d9708e69c70838 Mon Sep 17 00:00:00 2001 From: Olga Krishtal Date: Thu, 18 Aug 2016 14:57:14 +0300 Subject: [PATCH] vz: fixed race in vzDomainAttach/DettachDevice While dettaching/attaching device in OpenStack, nova calls vzDomainDettachDevice twice, because the update of the internal configuration of the ct comes a bit latter than the update event. As the result, we suffer from the second call to dettach the same device. Signed-off-by: Olga Krishtal --- src/vz/vz_sdk.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/vz/vz_sdk.c b/src/vz/vz_sdk.c index 97fdf91a56..46ded57754 100644 --- a/src/vz/vz_sdk.c +++ b/src/vz/vz_sdk.c @@ -3600,6 +3600,12 @@ prlsdkAttachDevice(vzDriverPtr driver, return -1; } + if (prlsdkUpdateDomain(driver, dom) < 0) { + virReportError(VIR_ERR_INTERNAL_ERROR, "%s", + _("Failed to save new config")); + return -1; + } + job = PrlVm_CommitEx(privdom->sdkdom, PVCF_DETACH_HDD_BUNDLE); if (PRL_FAILED(waitDomainJob(job, dom))) return -1; @@ -3667,6 +3673,12 @@ prlsdkDetachDevice(vzDriverPtr driver, goto cleanup; } + if (prlsdkUpdateDomain(driver, dom) < 0) { + virReportError(VIR_ERR_INTERNAL_ERROR, "%s", + _("Failed to save new config")); + goto cleanup; + } + job = PrlVm_CommitEx(privdom->sdkdom, PVCF_DETACH_HDD_BUNDLE); if (PRL_FAILED(waitDomainJob(job, dom))) goto cleanup;