From nobody Thu May 2 00:30:13 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) client-ip=209.132.183.28; envelope-from=libvir-list-bounces@redhat.com; helo=mx1.redhat.com; Authentication-Results: mx.zohomail.com; spf=pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=fail(p=none dis=none) header.from=linux.ibm.com Return-Path: Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by mx.zohomail.com with SMTPS id 1542722084520386.7483513907613; Tue, 20 Nov 2018 05:54:44 -0800 (PST) Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.phx2.redhat.com [10.5.11.14]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id C955C307D855; Tue, 20 Nov 2018 13:54:42 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.21]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 331D1607DB; Tue, 20 Nov 2018 13:54:42 +0000 (UTC) Received: from lists01.pubmisc.prod.ext.phx2.redhat.com (lists01.pubmisc.prod.ext.phx2.redhat.com [10.5.19.33]) by colo-mx.corp.redhat.com (Postfix) with ESMTP id 05DDD3F602; Tue, 20 Nov 2018 13:54:41 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.11]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id wAKDsdtf019234 for ; Tue, 20 Nov 2018 08:54:39 -0500 Received: by smtp.corp.redhat.com (Postfix) id D3EB860139; Tue, 20 Nov 2018 13:54:39 +0000 (UTC) Received: from mx1.redhat.com (ext-mx13.extmail.prod.ext.phx2.redhat.com [10.5.110.42]) by smtp.corp.redhat.com (Postfix) with ESMTPS id CB0D360154 for ; Tue, 20 Nov 2018 13:54:37 +0000 (UTC) Received: from mx0a-001b2d01.pphosted.com (mx0a-001b2d01.pphosted.com [148.163.156.1]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id EB3763082134 for ; Tue, 20 Nov 2018 13:54:35 +0000 (UTC) Received: from pps.filterd (m0098393.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.16.0.22/8.16.0.22) with SMTP id wAKDrkb7064842 for ; Tue, 20 Nov 2018 08:54:35 -0500 Received: from e06smtp03.uk.ibm.com (e06smtp03.uk.ibm.com [195.75.94.99]) by mx0a-001b2d01.pphosted.com with ESMTP id 2nvjqs2ge1-1 (version=TLSv1.2 cipher=AES256-GCM-SHA384 bits=256 verify=NOT) for ; Tue, 20 Nov 2018 08:54:35 -0500 Received: from localhost by e06smtp03.uk.ibm.com with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted for from ; Tue, 20 Nov 2018 13:54:32 -0000 Received: from b06cxnps3075.portsmouth.uk.ibm.com (9.149.109.195) by e06smtp03.uk.ibm.com (192.168.101.133) with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted; (version=TLSv1/SSLv3 cipher=AES256-GCM-SHA384 bits=256/256) Tue, 20 Nov 2018 13:54:30 -0000 Received: from d06av22.portsmouth.uk.ibm.com (d06av22.portsmouth.uk.ibm.com [9.149.105.58]) by b06cxnps3075.portsmouth.uk.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id wAKDsSdh60031138 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=FAIL); Tue, 20 Nov 2018 13:54:28 GMT Received: from d06av22.portsmouth.uk.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 69C0B4C040; Tue, 20 Nov 2018 13:54:28 +0000 (GMT) Received: from d06av22.portsmouth.uk.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 312C14C044; Tue, 20 Nov 2018 13:54:28 +0000 (GMT) Received: from marc-ibm.boeblingen.de.ibm.com (unknown [9.152.224.50]) by d06av22.portsmouth.uk.ibm.com (Postfix) with ESMTP; Tue, 20 Nov 2018 13:54:28 +0000 (GMT) From: Marc Hartmayer To: Date: Tue, 20 Nov 2018 14:54:16 +0100 In-Reply-To: <20181120134914.20376-1-mhartmay@linux.ibm.com> References: <20181120134914.20376-1-mhartmay@linux.ibm.com> X-TM-AS-GCONF: 00 x-cbid: 18112013-0012-0000-0000-000002CD63F1 X-IBM-AV-DETECTION: SAVI=unused REMOTE=unused XFE=unused x-cbparentid: 18112013-0013-0000-0000-000021028CE4 Message-Id: <20181120135416.21493-1-mhartmay@linux.ibm.com> X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:, , definitions=2018-11-20_05:, , signatures=0 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 malwarescore=0 suspectscore=4 phishscore=0 bulkscore=0 spamscore=0 clxscore=1015 lowpriorityscore=0 mlxscore=0 impostorscore=0 mlxlogscore=999 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.0.1-1810050000 definitions=main-1811200126 X-Greylist: Sender passed SPF test, Sender IP whitelisted by DNSRBL, ACL 216 matched, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.42]); Tue, 20 Nov 2018 13:54:36 +0000 (UTC) X-Greylist: inspected by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.42]); Tue, 20 Nov 2018 13:54:36 +0000 (UTC) for IP:'148.163.156.1' DOMAIN:'mx0a-001b2d01.pphosted.com' HELO:'mx0a-001b2d01.pphosted.com' FROM:'mhartmay@linux.ibm.com' RCPT:'' X-RedHat-Spam-Score: -0.701 (RCVD_IN_DNSWL_LOW, SPF_PASS) 148.163.156.1 mx0a-001b2d01.pphosted.com 148.163.156.1 mx0a-001b2d01.pphosted.com X-Scanned-By: MIMEDefang 2.84 on 10.5.110.42 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.11 X-loop: libvir-list@redhat.com Cc: Boris Fiuczynski Subject: [libvirt] [PATCH] test: Convert testDriver to virObjectLockable X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.12 Precedence: junk List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Sender: libvir-list-bounces@redhat.com Errors-To: libvir-list-bounces@redhat.com X-Scanned-By: MIMEDefang 2.79 on 10.5.11.14 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.48]); Tue, 20 Nov 2018 13:54:43 +0000 (UTC) Content-Type: text/plain; charset="utf-8" From: Marc Hartmayer The test driver state (@testDriver) uses it's own reference counting and locking implementation. Instead of doing that, convert @testDriver into a virObjectLockable and use the provided functionalities. Signed-off-by: Marc Hartmayer Reviewed-by: Boris Fiuczynski --- This patch was originally posted with the patch series "[libvirt] [PATCH libvirt v2 0/9] Fix virConnectRegisterCloseCallback and get rid of global variables" (mid:20180412124104.10547-1-mhartmay@linux.vnet.ibm.com). I dropped the r-b from John because so much time has passed. --- src/test/test_driver.c | 198 ++++++++++++++++++----------------------- 1 file changed, 87 insertions(+), 111 deletions(-) diff --git a/src/test/test_driver.c b/src/test/test_driver.c index 31d0da744ce5..b76f0b718ecd 100644 --- a/src/test/test_driver.c +++ b/src/test/test_driver.c @@ -92,7 +92,7 @@ typedef struct _testAuth testAuth; typedef struct _testAuth *testAuthPtr; =20 struct _testDriver { - virMutex lock; + virObjectLockable parent; =20 virNodeInfo nodeInfo; virInterfaceObjListPtr ifaces; @@ -124,9 +124,19 @@ typedef struct _testDriver testDriver; typedef testDriver *testDriverPtr; =20 static testDriverPtr defaultPrivconn; -static int defaultConnections; static virMutex defaultLock =3D VIR_MUTEX_INITIALIZER; =20 +static virClassPtr testDriverClass; +static void testDriverDispose(void *obj); +static int testDriverOnceInit(void) +{ + if (!(VIR_CLASS_NEW(testDriver, virClassForObjectLockable()))) + return -1; + + return 0; +} +VIR_ONCE_GLOBAL_INIT(testDriver) + #define TEST_MODEL "i686" #define TEST_EMULATOR "/usr/bin/test-hv" =20 @@ -142,10 +152,9 @@ static const virNodeInfo defaultNodeInfo =3D { }; =20 static void -testDriverFree(testDriverPtr driver) +testDriverDispose(void *obj) { - if (!driver) - return; + testDriverPtr driver =3D obj; =20 virObjectUnref(driver->caps); virObjectUnref(driver->xmlopt); @@ -155,21 +164,6 @@ testDriverFree(testDriverPtr driver) virObjectUnref(driver->ifaces); virObjectUnref(driver->pools); virObjectUnref(driver->eventState); - virMutexUnlock(&driver->lock); - virMutexDestroy(&driver->lock); - - VIR_FREE(driver); -} - - -static void testDriverLock(testDriverPtr driver) -{ - virMutexLock(&driver->lock); -} - -static void testDriverUnlock(testDriverPtr driver) -{ - virMutexUnlock(&driver->lock); } =20 #define TEST_NAMESPACE_HREF "http://libvirt.org/schemas/domain/test/1.0" @@ -401,14 +395,11 @@ testDriverNew(void) }; testDriverPtr ret; =20 - if (VIR_ALLOC(ret) < 0) + if (testDriverInitialize() < 0) return NULL; =20 - if (virMutexInit(&ret->lock) < 0) { - virReportError(VIR_ERR_INTERNAL_ERROR, - "%s", _("cannot initialize mutex")); - goto error; - } + if (!(ret =3D virObjectLockableNew(testDriverClass))) + return NULL; =20 if (!(ret->xmlopt =3D virDomainXMLOptionNew(NULL, NULL, &ns, NULL, NUL= L)) || !(ret->eventState =3D virObjectEventStateNew()) || @@ -424,7 +415,7 @@ testDriverNew(void) return ret; =20 error: - testDriverFree(ret); + virObjectUnref(ret); return NULL; } =20 @@ -1256,7 +1247,7 @@ testOpenFromFile(virConnectPtr conn, const char *file) if (!(privconn =3D testDriverNew())) return VIR_DRV_OPEN_ERROR; =20 - testDriverLock(privconn); + virObjectLock(privconn); conn->privateData =3D privconn; =20 if (!(privconn->caps =3D testBuildCapabilities(conn))) @@ -1273,14 +1264,14 @@ testOpenFromFile(virConnectPtr conn, const char *fi= le) =20 xmlXPathFreeContext(ctxt); xmlFreeDoc(doc); - testDriverUnlock(privconn); + virObjectUnlock(privconn); =20 return VIR_DRV_OPEN_SUCCESS; =20 error: xmlXPathFreeContext(ctxt); xmlFreeDoc(doc); - testDriverFree(privconn); + virObjectUnref(privconn); conn->privateData =3D NULL; return VIR_DRV_OPEN_ERROR; } @@ -1298,8 +1289,8 @@ testOpenDefault(virConnectPtr conn) size_t i; =20 virMutexLock(&defaultLock); - if (defaultConnections++) { - conn->privateData =3D defaultPrivconn; + if (defaultPrivconn) { + conn->privateData =3D virObjectRef(defaultPrivconn); virMutexUnlock(&defaultLock); return VIR_DRV_OPEN_SUCCESS; } @@ -1348,9 +1339,8 @@ testOpenDefault(virConnectPtr conn) return ret; =20 error: - testDriverFree(privconn); + virObjectUnref(privconn); conn->privateData =3D NULL; - defaultConnections--; goto cleanup; } =20 @@ -1363,9 +1353,9 @@ testConnectAuthenticate(virConnectPtr conn, ssize_t i; char *username =3D NULL, *password =3D NULL; =20 - testDriverLock(privconn); + virObjectLock(privconn); if (privconn->numAuths =3D=3D 0) { - testDriverUnlock(privconn); + virObjectUnlock(privconn); return 0; } =20 @@ -1400,7 +1390,7 @@ testConnectAuthenticate(virConnectPtr conn, =20 ret =3D 0; cleanup: - testDriverUnlock(privconn); + virObjectUnlock(privconn); VIR_FREE(username); VIR_FREE(password); return ret; @@ -1410,24 +1400,11 @@ testConnectAuthenticate(virConnectPtr conn, static void testDriverCloseInternal(testDriverPtr driver) { - bool dflt =3D false; - - if (driver =3D=3D defaultPrivconn) { - dflt =3D true; - virMutexLock(&defaultLock); - if (--defaultConnections) { - virMutexUnlock(&defaultLock); - return; - } - } - - testDriverLock(driver); - testDriverFree(driver); - - if (dflt) { + virMutexLock(&defaultLock); + bool disposed =3D !virObjectUnref(driver); + if (disposed && driver =3D=3D defaultPrivconn) defaultPrivconn =3D NULL; - virMutexUnlock(&defaultLock); - } + virMutexUnlock(&defaultLock); } =20 =20 @@ -1546,9 +1523,9 @@ static int testNodeGetInfo(virConnectPtr conn, virNodeInfoPtr info) { testDriverPtr privconn =3D conn->privateData; - testDriverLock(privconn); + virObjectLock(privconn); memcpy(info, &privconn->nodeInfo, sizeof(virNodeInfo)); - testDriverUnlock(privconn); + virObjectUnlock(privconn); return 0; } =20 @@ -1556,9 +1533,9 @@ static char *testConnectGetCapabilities(virConnectPtr= conn) { testDriverPtr privconn =3D conn->privateData; char *xml; - testDriverLock(privconn); + virObjectLock(privconn); xml =3D virCapabilitiesFormatXML(privconn->caps); - testDriverUnlock(privconn); + virObjectUnlock(privconn); return xml; } =20 @@ -1593,9 +1570,9 @@ static int testConnectNumOfDomains(virConnectPtr conn) testDriverPtr privconn =3D conn->privateData; int count; =20 - testDriverLock(privconn); + virObjectLock(privconn); count =3D virDomainObjListNumOfDomains(privconn->domains, true, NULL, = NULL); - testDriverUnlock(privconn); + virObjectUnlock(privconn); =20 return count; } @@ -1648,7 +1625,7 @@ testDomainCreateXML(virConnectPtr conn, const char *x= ml, if (flags & VIR_DOMAIN_START_VALIDATE) parse_flags |=3D VIR_DOMAIN_DEF_PARSE_VALIDATE_SCHEMA; =20 - testDriverLock(privconn); + virObjectLock(privconn); if ((def =3D virDomainDefParseString(xml, privconn->caps, privconn->xm= lopt, NULL, parse_flags)) =3D=3D NULL) goto cleanup; @@ -1680,7 +1657,7 @@ testDomainCreateXML(virConnectPtr conn, const char *x= ml, virDomainObjEndAPI(&dom); virObjectEventStateQueue(privconn->eventState, event); virDomainDefFree(def); - testDriverUnlock(privconn); + virObjectUnlock(privconn); return ret; } =20 @@ -2842,7 +2819,7 @@ static int testNodeGetCellsFreeMemory(virConnectPtr c= onn, size_t i; int ret =3D -1; =20 - testDriverLock(privconn); + virObjectLock(privconn); if (startCell >=3D privconn->numCells) { virReportError(VIR_ERR_INVALID_ARG, "%s", _("Range exceeds available cells")); @@ -2857,7 +2834,7 @@ static int testNodeGetCellsFreeMemory(virConnectPtr c= onn, ret =3D i; =20 cleanup: - testDriverUnlock(privconn); + virObjectUnlock(privconn); return ret; } =20 @@ -2915,12 +2892,12 @@ testNodeGetFreeMemory(virConnectPtr conn) unsigned int freeMem =3D 0; size_t i; =20 - testDriverLock(privconn); + virObjectLock(privconn); =20 for (i =3D 0; i < privconn->numCells; i++) freeMem +=3D privconn->cells[i].freeMem; =20 - testDriverUnlock(privconn); + virObjectUnlock(privconn); return freeMem; } =20 @@ -2957,7 +2934,7 @@ static int testDomainCreateWithFlags(virDomainPtr dom= ain, unsigned int flags) =20 virCheckFlags(0, -1); =20 - testDriverLock(privconn); + virObjectLock(privconn); =20 if (!(privdom =3D testDomObjFromDomain(domain))) goto cleanup; @@ -2981,7 +2958,7 @@ static int testDomainCreateWithFlags(virDomainPtr dom= ain, unsigned int flags) cleanup: virDomainObjEndAPI(&privdom); virObjectEventStateQueue(privconn->eventState, event); - testDriverUnlock(privconn); + virObjectUnlock(privconn); return ret; } =20 @@ -3746,9 +3723,9 @@ testInterfaceObjFindByName(testDriverPtr privconn, { virInterfaceObjPtr obj; =20 - testDriverLock(privconn); + virObjectLock(privconn); obj =3D virInterfaceObjListFindByName(privconn->ifaces, name); - testDriverUnlock(privconn); + virObjectUnlock(privconn); =20 if (!obj) virReportError(VIR_ERR_NO_INTERFACE, @@ -3765,9 +3742,9 @@ testConnectNumOfInterfaces(virConnectPtr conn) testDriverPtr privconn =3D conn->privateData; int ninterfaces; =20 - testDriverLock(privconn); + virObjectLock(privconn); ninterfaces =3D virInterfaceObjListNumOfInterfaces(privconn->ifaces, t= rue); - testDriverUnlock(privconn); + virObjectUnlock(privconn); return ninterfaces; } =20 @@ -3780,10 +3757,10 @@ testConnectListInterfaces(virConnectPtr conn, testDriverPtr privconn =3D conn->privateData; int nnames; =20 - testDriverLock(privconn); + virObjectLock(privconn); nnames =3D virInterfaceObjListGetNames(privconn->ifaces, true, names, maxnames); - testDriverUnlock(privconn); + virObjectUnlock(privconn); =20 return nnames; } @@ -3795,9 +3772,9 @@ testConnectNumOfDefinedInterfaces(virConnectPtr conn) testDriverPtr privconn =3D conn->privateData; int ninterfaces; =20 - testDriverLock(privconn); + virObjectLock(privconn); ninterfaces =3D virInterfaceObjListNumOfInterfaces(privconn->ifaces, f= alse); - testDriverUnlock(privconn); + virObjectUnlock(privconn); return ninterfaces; } =20 @@ -3810,10 +3787,10 @@ testConnectListDefinedInterfaces(virConnectPtr conn, testDriverPtr privconn =3D conn->privateData; int nnames; =20 - testDriverLock(privconn); + virObjectLock(privconn); nnames =3D virInterfaceObjListGetNames(privconn->ifaces, false, names, maxnames); - testDriverUnlock(privconn); + virObjectUnlock(privconn); =20 return nnames; } @@ -3862,10 +3839,10 @@ testInterfaceLookupByMACString(virConnectPtr conn, char *ifacenames[] =3D { NULL, NULL }; virInterfacePtr ret =3D NULL; =20 - testDriverLock(privconn); + virObjectLock(privconn); ifacect =3D virInterfaceObjListFindByMACString(privconn->ifaces, mac, ifacenames, 2); - testDriverUnlock(privconn); + virObjectUnlock(privconn); =20 if (ifacect =3D=3D 0) { virReportError(VIR_ERR_NO_INTERFACE, @@ -3913,7 +3890,7 @@ testInterfaceChangeBegin(virConnectPtr conn, =20 virCheckFlags(0, -1); =20 - testDriverLock(privconn); + virObjectLock(privconn); if (privconn->transaction_running) { virReportError(VIR_ERR_OPERATION_INVALID, "%s", _("there is another transaction running.")); @@ -3927,7 +3904,7 @@ testInterfaceChangeBegin(virConnectPtr conn, =20 ret =3D 0; cleanup: - testDriverUnlock(privconn); + virObjectUnlock(privconn); return ret; } =20 @@ -3941,7 +3918,7 @@ testInterfaceChangeCommit(virConnectPtr conn, =20 virCheckFlags(0, -1); =20 - testDriverLock(privconn); + virObjectLock(privconn); =20 if (!privconn->transaction_running) { virReportError(VIR_ERR_OPERATION_INVALID, "%s", @@ -3956,7 +3933,7 @@ testInterfaceChangeCommit(virConnectPtr conn, ret =3D 0; =20 cleanup: - testDriverUnlock(privconn); + virObjectUnlock(privconn); =20 return ret; } @@ -3971,7 +3948,7 @@ testInterfaceChangeRollback(virConnectPtr conn, =20 virCheckFlags(0, -1); =20 - testDriverLock(privconn); + virObjectLock(privconn); =20 if (!privconn->transaction_running) { virReportError(VIR_ERR_OPERATION_INVALID, "%s", @@ -3989,7 +3966,7 @@ testInterfaceChangeRollback(virConnectPtr conn, ret =3D 0; =20 cleanup: - testDriverUnlock(privconn); + virObjectUnlock(privconn); return ret; } =20 @@ -4029,7 +4006,7 @@ testInterfaceDefineXML(virConnectPtr conn, =20 virCheckFlags(0, NULL); =20 - testDriverLock(privconn); + virObjectLock(privconn); if ((def =3D virInterfaceDefParseString(xmlStr)) =3D=3D NULL) goto cleanup; =20 @@ -4043,7 +4020,7 @@ testInterfaceDefineXML(virConnectPtr conn, cleanup: virInterfaceDefFree(def); virInterfaceObjEndAPI(&obj); - testDriverUnlock(privconn); + virObjectUnlock(privconn); return ret; } =20 @@ -4147,9 +4124,9 @@ testStoragePoolObjFindByName(testDriverPtr privconn, { virStoragePoolObjPtr obj; =20 - testDriverLock(privconn); + virObjectLock(privconn); obj =3D virStoragePoolObjFindByName(privconn->pools, name); - testDriverUnlock(privconn); + virObjectUnlock(privconn); =20 if (!obj) virReportError(VIR_ERR_NO_STORAGE_POOL, @@ -4207,9 +4184,9 @@ testStoragePoolObjFindByUUID(testDriverPtr privconn, virStoragePoolObjPtr obj; char uuidstr[VIR_UUID_STRING_BUFLEN]; =20 - testDriverLock(privconn); + virObjectLock(privconn); obj =3D virStoragePoolObjFindByUUID(privconn->pools, uuid); - testDriverUnlock(privconn); + virObjectUnlock(privconn); =20 if (!obj) { virUUIDFormat(uuid, uuidstr); @@ -4275,10 +4252,10 @@ testConnectNumOfStoragePools(virConnectPtr conn) testDriverPtr privconn =3D conn->privateData; int numActive =3D 0; =20 - testDriverLock(privconn); + virObjectLock(privconn); numActive =3D virStoragePoolObjNumOfStoragePools(privconn->pools, conn, true, NULL); - testDriverUnlock(privconn); + virObjectUnlock(privconn); =20 return numActive; } @@ -4292,10 +4269,10 @@ testConnectListStoragePools(virConnectPtr conn, testDriverPtr privconn =3D conn->privateData; int n =3D 0; =20 - testDriverLock(privconn); + virObjectLock(privconn); n =3D virStoragePoolObjGetNames(privconn->pools, conn, true, NULL, names, maxnames); - testDriverUnlock(privconn); + virObjectUnlock(privconn); =20 return n; } @@ -4307,10 +4284,10 @@ testConnectNumOfDefinedStoragePools(virConnectPtr c= onn) testDriverPtr privconn =3D conn->privateData; int numInactive =3D 0; =20 - testDriverLock(privconn); + virObjectLock(privconn); numInactive =3D virStoragePoolObjNumOfStoragePools(privconn->pools, co= nn, false, NULL); - testDriverUnlock(privconn); + virObjectUnlock(privconn); =20 return numInactive; } @@ -4324,10 +4301,10 @@ testConnectListDefinedStoragePools(virConnectPtr co= nn, testDriverPtr privconn =3D conn->privateData; int n =3D 0; =20 - testDriverLock(privconn); + virObjectLock(privconn); n =3D virStoragePoolObjGetNames(privconn->pools, conn, false, NULL, names, maxnames); - testDriverUnlock(privconn); + virObjectUnlock(privconn); =20 return n; } @@ -4343,10 +4320,10 @@ testConnectListAllStoragePools(virConnectPtr conn, =20 virCheckFlags(VIR_CONNECT_LIST_STORAGE_POOLS_FILTERS_ALL, -1); =20 - testDriverLock(privconn); + virObjectLock(privconn); ret =3D virStoragePoolObjListExport(conn, privconn->pools, pools, NULL, flags); - testDriverUnlock(privconn); + virObjectUnlock(privconn); =20 return ret; } @@ -4508,7 +4485,7 @@ testStoragePoolCreateXML(virConnectPtr conn, =20 virCheckFlags(0, NULL); =20 - testDriverLock(privconn); + virObjectLock(privconn); if (!(newDef =3D virStoragePoolDefParseString(xml))) goto cleanup; =20 @@ -4556,7 +4533,7 @@ testStoragePoolCreateXML(virConnectPtr conn, virStoragePoolDefFree(newDef); virObjectEventStateQueue(privconn->eventState, event); virStoragePoolObjEndAPI(&obj); - testDriverUnlock(privconn); + virObjectUnlock(privconn); return pool; } =20 @@ -4575,7 +4552,7 @@ testStoragePoolDefineXML(virConnectPtr conn, =20 virCheckFlags(0, NULL); =20 - testDriverLock(privconn); + virObjectLock(privconn); if (!(newDef =3D virStoragePoolDefParseString(xml))) goto cleanup; =20 @@ -4605,7 +4582,7 @@ testStoragePoolDefineXML(virConnectPtr conn, virStoragePoolDefFree(newDef); virObjectEventStateQueue(privconn->eventState, event); virStoragePoolObjEndAPI(&obj); - testDriverUnlock(privconn); + virObjectUnlock(privconn); return pool; } =20 @@ -5006,7 +4983,7 @@ testStorageVolLookupByKey(virConnectPtr conn, .key =3D key, .voldef =3D NULL }; virStorageVolPtr vol =3D NULL; =20 - testDriverLock(privconn); + virObjectLock(privconn); if ((obj =3D virStoragePoolObjListSearch(privconn->pools, testStorageVolLookupByKeyCallba= ck, &data)) && data.voldef) { @@ -5016,7 +4993,7 @@ testStorageVolLookupByKey(virConnectPtr conn, NULL, NULL); virStoragePoolObjEndAPI(&obj); } - testDriverUnlock(privconn); + virObjectUnlock(privconn); =20 if (!vol) virReportError(VIR_ERR_NO_STORAGE_VOL, @@ -5050,7 +5027,7 @@ testStorageVolLookupByPath(virConnectPtr conn, .path =3D path, .voldef =3D NULL }; virStorageVolPtr vol =3D NULL; =20 - testDriverLock(privconn); + virObjectLock(privconn); if ((obj =3D virStoragePoolObjListSearch(privconn->pools, testStorageVolLookupByPathCallb= ack, &data)) && data.voldef) { @@ -5060,7 +5037,7 @@ testStorageVolLookupByPath(virConnectPtr conn, NULL, NULL); virStoragePoolObjEndAPI(&obj); } - testDriverUnlock(privconn); + virObjectUnlock(privconn); =20 if (!vol) virReportError(VIR_ERR_NO_STORAGE_VOL, @@ -6819,7 +6796,6 @@ testDomainRevertToSnapshot(virDomainSnapshotPtr snaps= hot, } =20 =20 - static virHypervisorDriver testHypervisorDriver =3D { .name =3D "Test", .connectOpen =3D testConnectOpen, /* 0.1.1 */ --=20 2.17.0 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list