]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
vz: restore accidentally removed locks around close callback calls
authorNikolay Shirokovskiy <nshirokovskiy@virtuozzo.com>
Tue, 14 Jun 2016 08:45:53 +0000 (11:45 +0300)
committerMaxim Nestratov <mnestratov@virtuozzo.com>
Tue, 19 Jul 2016 02:31:16 +0000 (05:31 +0300)
Signed-off-by: Nikolay Shirokovskiy <nshirokovskiy@virtuozzo.com>
src/vz/vz_driver.c

index 6fb622293bb64747a63d131a743a40f9750f58f7..6d48dc4deca820234d8f91e8a70473950fbe72b9 100644 (file)
@@ -1514,6 +1514,8 @@ vzConnectRegisterCloseCallback(virConnectPtr conn,
     vzConnPtr privconn = conn->privateData;
     int ret = -1;
 
+    virObjectLock(privconn->driver);
+
     if (virConnectCloseCallbackDataGetCallback(privconn->closeCallback) != NULL) {
         virReportError(VIR_ERR_OPERATION_INVALID, "%s",
                        _("A close callback is already registered"));
@@ -1525,6 +1527,7 @@ vzConnectRegisterCloseCallback(virConnectPtr conn,
     ret = 0;
 
  cleanup:
+    virObjectUnlock(privconn->driver);
 
     return ret;
 }
@@ -1535,6 +1538,7 @@ vzConnectUnregisterCloseCallback(virConnectPtr conn, virConnectCloseFunc cb)
     vzConnPtr privconn = conn->privateData;
     int ret = -1;
 
+    virObjectLock(privconn->driver);
 
     if (virConnectCloseCallbackDataGetCallback(privconn->closeCallback) != cb) {
         virReportError(VIR_ERR_OPERATION_INVALID, "%s",
@@ -1546,6 +1550,7 @@ vzConnectUnregisterCloseCallback(virConnectPtr conn, virConnectCloseFunc cb)
     ret = 0;
 
  cleanup:
+    virObjectUnlock(privconn->driver);
 
     return ret;
 }