From nobody Mon Feb 9 15:27:17 2026 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 Return-Path: Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by mx.zohomail.com with SMTPS id 1510851564829799.8034521572775; Thu, 16 Nov 2017 08:59:24 -0800 (PST) Received: from smtp.corp.redhat.com (int-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.12]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 8BB0B7CBA5; Thu, 16 Nov 2017 16:58:53 +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 693FB5C2F6; Thu, 16 Nov 2017 16:58:53 +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 3166A3D387; Thu, 16 Nov 2017 16:58:53 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx05.intmail.prod.int.phx2.redhat.com [10.5.11.15]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id vAGGwACo011215 for ; Thu, 16 Nov 2017 11:58:10 -0500 Received: by smtp.corp.redhat.com (Postfix) id 1ACF12C7C4; Thu, 16 Nov 2017 16:58:10 +0000 (UTC) Received: from localhost.localdomain.com (ovpn-117-167.phx2.redhat.com [10.3.117.167]) by smtp.corp.redhat.com (Postfix) with ESMTP id AFE772D256 for ; Thu, 16 Nov 2017 16:58:09 +0000 (UTC) From: John Ferlan To: libvir-list@redhat.com Date: Thu, 16 Nov 2017 11:58:02 -0500 Message-Id: <20171116165805.14496-2-jferlan@redhat.com> In-Reply-To: <20171116165805.14496-1-jferlan@redhat.com> References: <20171116165805.14496-1-jferlan@redhat.com> X-Scanned-By: MIMEDefang 2.79 on 10.5.11.15 X-loop: libvir-list@redhat.com Subject: [libvirt] [PATCH 1/4] storage: Introduce virStoragePoolObjEndAPI 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.12 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.26]); Thu, 16 Nov 2017 16:58:53 +0000 (UTC) X-ZohoMail: RSF_0 Z_629925259 SPT_0 Content-Type: text/plain; charset="utf-8" For now it'll just call the virStoragePoolObjUnlock, but a future adjustment will do something different. Since the new API will check for a NULL object before the Unlock call, callers no longer need to check for NULL before calling. The virStoragePoolObjUnlock is now private/static to virstorageobj.c with a short term forward reference. Signed-off-by: John Ferlan Reviewed-by: Erik Skultety --- src/conf/virstorageobj.c | 15 ++++- src/conf/virstorageobj.h | 6 +- src/libvirt_private.syms | 2 +- src/storage/storage_backend_scsi.c | 2 +- src/storage/storage_driver.c | 115 +++++++++++++++++----------------= ---- src/test/test_driver.c | 71 +++++++++++------------ tests/storagevolxml2argvtest.c | 3 +- 7 files changed, 106 insertions(+), 108 deletions(-) diff --git a/src/conf/virstorageobj.c b/src/conf/virstorageobj.c index 50dbd7bf4d..2ca8453139 100644 --- a/src/conf/virstorageobj.c +++ b/src/conf/virstorageobj.c @@ -36,6 +36,9 @@ =20 VIR_LOG_INIT("conf.virstorageobj"); =20 +static void +virStoragePoolObjUnlock(virStoragePoolObjPtr obj); + =20 struct _virStorageVolDefList { size_t count; @@ -77,6 +80,16 @@ virStoragePoolObjNew(void) } =20 =20 +void +virStoragePoolObjEndAPI(virStoragePoolObjPtr *obj) +{ + if (!*obj) + return; + + virStoragePoolObjUnlock(*obj); +} + + virStoragePoolDefPtr virStoragePoolObjGetDef(virStoragePoolObjPtr obj) { @@ -1274,7 +1287,7 @@ virStoragePoolObjLock(virStoragePoolObjPtr obj) } =20 =20 -void +static void virStoragePoolObjUnlock(virStoragePoolObjPtr obj) { virMutexUnlock(&obj->lock); diff --git a/src/conf/virstorageobj.h b/src/conf/virstorageobj.h index 69e737226b..a4d7186d12 100644 --- a/src/conf/virstorageobj.h +++ b/src/conf/virstorageobj.h @@ -58,6 +58,9 @@ typedef bool virStoragePoolObjPtr virStoragePoolObjNew(void); =20 +void +virStoragePoolObjEndAPI(virStoragePoolObjPtr *obj); + virStoragePoolDefPtr virStoragePoolObjGetDef(virStoragePoolObjPtr obj); =20 @@ -240,9 +243,6 @@ virStoragePoolObjSourceFindDuplicate(virConnectPtr conn, void virStoragePoolObjLock(virStoragePoolObjPtr obj); =20 -void -virStoragePoolObjUnlock(virStoragePoolObjPtr obj); - int virStoragePoolObjListExport(virConnectPtr conn, virStoragePoolObjListPtr poolobjs, diff --git a/src/libvirt_private.syms b/src/libvirt_private.syms index a91b87d09a..57ba8f4038 100644 --- a/src/libvirt_private.syms +++ b/src/libvirt_private.syms @@ -1073,6 +1073,7 @@ virStoragePoolObjClearVols; virStoragePoolObjDecrAsyncjobs; virStoragePoolObjDefUseNewDef; virStoragePoolObjDeleteDef; +virStoragePoolObjEndAPI; virStoragePoolObjFindByName; virStoragePoolObjFindByUUID; virStoragePoolObjForEachVolume; @@ -1104,7 +1105,6 @@ virStoragePoolObjSetAutostart; virStoragePoolObjSetConfigFile; virStoragePoolObjSetDef; virStoragePoolObjSourceFindDuplicate; -virStoragePoolObjUnlock; virStoragePoolObjVolumeGetNames; virStoragePoolObjVolumeListExport; =20 diff --git a/src/storage/storage_backend_scsi.c b/src/storage/storage_backe= nd_scsi.c index ee79ad72f5..9347d66384 100644 --- a/src/storage/storage_backend_scsi.c +++ b/src/storage/storage_backend_scsi.c @@ -166,7 +166,7 @@ virStoragePoolFCRefreshThread(void *opaque) virStoragePoolObjClearVols(pool); found =3D virStorageBackendSCSIFindLUs(pool, host); } - virStoragePoolObjUnlock(pool); + virStoragePoolObjEndAPI(&pool); } while (!found && --tries); =20 if (pool && !found) diff --git a/src/storage/storage_driver.c b/src/storage/storage_driver.c index d209f5afb8..7cc3c518b4 100644 --- a/src/storage/storage_driver.c +++ b/src/storage/storage_driver.c @@ -167,7 +167,7 @@ storagePoolUpdateAllState(void) =20 virStoragePoolObjLock(obj); storagePoolUpdateState(obj); - virStoragePoolObjUnlock(obj); + virStoragePoolObjEndAPI(&obj); } } =20 @@ -192,7 +192,7 @@ storageDriverAutostart(void) =20 virStoragePoolObjLock(obj); if ((backend =3D virStorageBackendForType(def->type)) =3D=3D NULL)= { - virStoragePoolObjUnlock(obj); + virStoragePoolObjEndAPI(&obj); continue; } =20 @@ -203,7 +203,7 @@ storageDriverAutostart(void) virReportError(VIR_ERR_INTERNAL_ERROR, _("Failed to autostart storage pool '%s': %= s"), def->name, virGetLastErrorMessage()); - virStoragePoolObjUnlock(obj); + virStoragePoolObjEndAPI(&obj); continue; } started =3D true; @@ -229,7 +229,7 @@ storageDriverAutostart(void) } VIR_FREE(stateFile); } - virStoragePoolObjUnlock(obj); + virStoragePoolObjEndAPI(&obj); } =20 virObjectUnref(conn); @@ -458,7 +458,7 @@ storagePoolLookupByUUID(virConnectPtr conn, pool =3D virGetStoragePool(conn, def->name, def->uuid, NULL, NULL); =20 cleanup: - virStoragePoolObjUnlock(obj); + virStoragePoolObjEndAPI(&obj); return pool; } =20 @@ -480,7 +480,7 @@ storagePoolLookupByName(virConnectPtr conn, pool =3D virGetStoragePool(conn, def->name, def->uuid, NULL, NULL); =20 cleanup: - virStoragePoolObjUnlock(obj); + virStoragePoolObjEndAPI(&obj); return pool; } =20 @@ -501,7 +501,7 @@ storagePoolLookupByVolume(virStorageVolPtr vol) pool =3D virGetStoragePool(vol->conn, def->name, def->uuid, NULL, NULL= ); =20 cleanup: - virStoragePoolObjUnlock(obj); + virStoragePoolObjEndAPI(&obj); return pool; } =20 @@ -632,7 +632,7 @@ storagePoolIsActive(virStoragePoolPtr pool) ret =3D virStoragePoolObjIsActive(obj); =20 cleanup: - virStoragePoolObjUnlock(obj); + virStoragePoolObjEndAPI(&obj); return ret; } =20 @@ -654,7 +654,7 @@ storagePoolIsPersistent(virStoragePoolPtr pool) ret =3D virStoragePoolObjGetConfigFile(obj) ? 1 : 0; =20 cleanup: - virStoragePoolObjUnlock(obj); + virStoragePoolObjEndAPI(&obj); return ret; } =20 @@ -753,8 +753,7 @@ storagePoolCreateXML(virConnectPtr conn, virStoragePoolDefFree(newDef); if (event) virObjectEventStateQueue(driver->storageEventState, event); - if (obj) - virStoragePoolObjUnlock(obj); + virStoragePoolObjEndAPI(&obj); storageDriverUnlock(); return pool; } @@ -813,8 +812,7 @@ storagePoolDefineXML(virConnectPtr conn, if (event) virObjectEventStateQueue(driver->storageEventState, event); virStoragePoolDefFree(newDef); - if (obj) - virStoragePoolObjUnlock(obj); + virStoragePoolObjEndAPI(&obj); storageDriverUnlock(); return pool; } @@ -874,8 +872,7 @@ storagePoolUndefine(virStoragePoolPtr pool) cleanup: if (event) virObjectEventStateQueue(driver->storageEventState, event); - if (obj) - virStoragePoolObjUnlock(obj); + virStoragePoolObjEndAPI(&obj); storageDriverUnlock(); return ret; } @@ -958,8 +955,7 @@ storagePoolCreate(virStoragePoolPtr pool, VIR_FREE(stateFile); if (event) virObjectEventStateQueue(driver->storageEventState, event); - if (obj) - virStoragePoolObjUnlock(obj); + virStoragePoolObjEndAPI(&obj); return ret; } =20 @@ -1004,7 +1000,7 @@ storagePoolBuild(virStoragePoolPtr pool, cleanup: if (event) virObjectEventStateQueue(driver->storageEventState, event); - virStoragePoolObjUnlock(obj); + virStoragePoolObjEndAPI(&obj); return ret; } =20 @@ -1071,8 +1067,7 @@ storagePoolDestroy(virStoragePoolPtr pool) cleanup: if (event) virObjectEventStateQueue(driver->storageEventState, event); - if (obj) - virStoragePoolObjUnlock(obj); + virStoragePoolObjEndAPI(&obj); storageDriverUnlock(); return ret; } @@ -1138,7 +1133,7 @@ storagePoolDelete(virStoragePoolPtr pool, cleanup: if (event) virObjectEventStateQueue(driver->storageEventState, event); - virStoragePoolObjUnlock(obj); + virStoragePoolObjEndAPI(&obj); return ret; } =20 @@ -1202,8 +1197,7 @@ storagePoolRefresh(virStoragePoolPtr pool, cleanup: if (event) virObjectEventStateQueue(driver->storageEventState, event); - if (obj) - virStoragePoolObjUnlock(obj); + virStoragePoolObjEndAPI(&obj); storageDriverUnlock(); return ret; } @@ -1238,7 +1232,7 @@ storagePoolGetInfo(virStoragePoolPtr pool, ret =3D 0; =20 cleanup: - virStoragePoolObjUnlock(obj); + virStoragePoolObjEndAPI(&obj); return ret; } =20 @@ -1270,7 +1264,7 @@ storagePoolGetXMLDesc(virStoragePoolPtr pool, ret =3D virStoragePoolDefFormat(curDef); =20 cleanup: - virStoragePoolObjUnlock(obj); + virStoragePoolObjEndAPI(&obj); return ret; } =20 @@ -1293,7 +1287,7 @@ storagePoolGetAutostart(virStoragePoolPtr pool, ret =3D 0; =20 cleanup: - virStoragePoolObjUnlock(obj); + virStoragePoolObjEndAPI(&obj); return ret; } =20 @@ -1356,8 +1350,7 @@ storagePoolSetAutostart(virStoragePoolPtr pool, ret =3D 0; =20 cleanup: - if (obj) - virStoragePoolObjUnlock(obj); + virStoragePoolObjEndAPI(&obj); storageDriverUnlock(); return ret; } @@ -1387,7 +1380,7 @@ storagePoolNumOfVolumes(virStoragePoolPtr pool) virStoragePoolNumOfVolumesCheckACL= ); =20 cleanup: - virStoragePoolObjUnlock(obj); + virStoragePoolObjEndAPI(&obj); return ret; } =20 @@ -1418,7 +1411,7 @@ storagePoolListVolumes(virStoragePoolPtr pool, virStoragePoolListVolumesCheckACL, names, maxnames); cleanup: - virStoragePoolObjUnlock(obj); + virStoragePoolObjEndAPI(&obj); return n; } =20 @@ -1452,7 +1445,7 @@ storagePoolListAllVolumes(virStoragePoolPtr pool, =20 =20 cleanup: - virStoragePoolObjUnlock(obj); + virStoragePoolObjEndAPI(&obj); =20 return ret; } @@ -1492,7 +1485,7 @@ storageVolLookupByName(virStoragePoolPtr pool, voldef->key, NULL, NULL); =20 cleanup: - virStoragePoolObjUnlock(obj); + virStoragePoolObjEndAPI(&obj); return vol; } =20 @@ -1516,7 +1509,7 @@ storageVolLookupByKey(virConnectPtr conn, =20 if (voldef) { if (virStorageVolLookupByKeyEnsureACL(conn, def, voldef) <= 0) { - virStoragePoolObjUnlock(obj); + virStoragePoolObjEndAPI(&obj); goto cleanup; } =20 @@ -1525,7 +1518,7 @@ storageVolLookupByKey(virConnectPtr conn, NULL, NULL); } } - virStoragePoolObjUnlock(obj); + virStoragePoolObjEndAPI(&obj); } =20 if (!vol) @@ -1560,7 +1553,7 @@ storageVolLookupByPath(virConnectPtr conn, def =3D virStoragePoolObjGetDef(obj); =20 if (!virStoragePoolObjIsActive(obj)) { - virStoragePoolObjUnlock(obj); + virStoragePoolObjEndAPI(&obj); continue; } =20 @@ -1583,7 +1576,7 @@ storageVolLookupByPath(virConnectPtr conn, */ VIR_WARN("Failed to get stable path for pool '%s'", def->name); - virStoragePoolObjUnlock(obj); + virStoragePoolObjEndAPI(&obj); continue; } break; @@ -1594,7 +1587,7 @@ storageVolLookupByPath(virConnectPtr conn, case VIR_STORAGE_POOL_ZFS: case VIR_STORAGE_POOL_LAST: if (VIR_STRDUP(stable_path, path) < 0) { - virStoragePoolObjUnlock(obj); + virStoragePoolObjEndAPI(&obj); goto cleanup; } break; @@ -1605,7 +1598,7 @@ storageVolLookupByPath(virConnectPtr conn, =20 if (voldef) { if (virStorageVolLookupByPathEnsureACL(conn, def, voldef) < 0)= { - virStoragePoolObjUnlock(obj); + virStoragePoolObjEndAPI(&obj); goto cleanup; } =20 @@ -1614,7 +1607,7 @@ storageVolLookupByPath(virConnectPtr conn, NULL, NULL); } =20 - virStoragePoolObjUnlock(obj); + virStoragePoolObjEndAPI(&obj); } =20 if (!vol) { @@ -1655,14 +1648,14 @@ storagePoolLookupByTargetPath(virConnectPtr conn, def =3D virStoragePoolObjGetDef(obj); =20 if (!virStoragePoolObjIsActive(obj)) { - virStoragePoolObjUnlock(obj); + virStoragePoolObjEndAPI(&obj); continue; } =20 if (STREQ(path, def->target.path)) pool =3D virGetStoragePool(conn, def->name, def->uuid, NULL, N= ULL); =20 - virStoragePoolObjUnlock(obj); + virStoragePoolObjEndAPI(&obj); } storageDriverUnlock(); =20 @@ -1751,7 +1744,7 @@ virStorageVolDefFromVol(virStorageVolPtr vol, return voldef; =20 error: - virStoragePoolObjUnlock(*obj); + virStoragePoolObjEndAPI(obj); *obj =3D NULL; =20 return NULL; @@ -1794,7 +1787,7 @@ storageVolDelete(virStorageVolPtr vol, ret =3D 0; =20 cleanup: - virStoragePoolObjUnlock(obj); + virStoragePoolObjEndAPI(&obj); return ret; } =20 @@ -1885,7 +1878,7 @@ storageVolCreateXML(virStoragePoolPtr pool, /* Drop the pool lock during volume allocation */ virStoragePoolObjIncrAsyncjobs(obj); voldef->building =3D true; - virStoragePoolObjUnlock(obj); + virStoragePoolObjEndAPI(&obj); =20 buildret =3D backend->buildVol(pool->conn, obj, buildvoldef, flags= ); =20 @@ -1932,8 +1925,7 @@ storageVolCreateXML(virStoragePoolPtr pool, cleanup: virObjectUnref(newvol); virStorageVolDefFree(voldef); - if (obj) - virStoragePoolObjUnlock(obj); + virStoragePoolObjEndAPI(&obj); return vol; } =20 @@ -1961,7 +1953,7 @@ storageVolCreateXMLFrom(virStoragePoolPtr pool, storageDriverLock(); obj =3D virStoragePoolObjFindByUUID(&driver->pools, pool->uuid); if (obj && STRNEQ(pool->name, volsrc->pool)) { - virStoragePoolObjUnlock(obj); + virStoragePoolObjEndAPI(&obj); objsrc =3D virStoragePoolObjFindByName(&driver->pools, volsrc->poo= l); virStoragePoolObjLock(obj); } @@ -2082,11 +2074,11 @@ storageVolCreateXMLFrom(virStoragePoolPtr pool, virStoragePoolObjIncrAsyncjobs(obj); voldef->building =3D true; voldefsrc->in_use++; - virStoragePoolObjUnlock(obj); + virStoragePoolObjEndAPI(&obj); =20 if (objsrc) { virStoragePoolObjIncrAsyncjobs(objsrc); - virStoragePoolObjUnlock(objsrc); + virStoragePoolObjEndAPI(&objsrc); } =20 buildret =3D backend->buildVolFrom(pool->conn, obj, shadowvol, voldefs= rc, flags); @@ -2103,7 +2095,7 @@ storageVolCreateXMLFrom(virStoragePoolPtr pool, =20 if (objsrc) { virStoragePoolObjDecrAsyncjobs(objsrc); - virStoragePoolObjUnlock(objsrc); + virStoragePoolObjEndAPI(&objsrc); objsrc =3D NULL; } =20 @@ -2133,10 +2125,8 @@ storageVolCreateXMLFrom(virStoragePoolPtr pool, virObjectUnref(newvol); virStorageVolDefFree(voldef); VIR_FREE(shadowvol); - if (obj) - virStoragePoolObjUnlock(obj); - if (objsrc) - virStoragePoolObjUnlock(objsrc); + virStoragePoolObjEndAPI(&obj); + virStoragePoolObjEndAPI(&objsrc); return vol; } =20 @@ -2179,7 +2169,7 @@ storageVolDownload(virStorageVolPtr vol, offset, length, flags); =20 cleanup: - virStoragePoolObjUnlock(obj); + virStoragePoolObjEndAPI(&obj); =20 return ret; } @@ -2286,8 +2276,7 @@ virStorageVolPoolRefreshThread(void *opaque) cleanup: if (event) virObjectEventStateQueue(driver->storageEventState, event); - if (obj) - virStoragePoolObjUnlock(obj); + virStoragePoolObjEndAPI(&obj); storageDriverUnlock(); virStorageVolPoolRefreshDataFree(cbdata); } @@ -2386,7 +2375,7 @@ storageVolUpload(virStorageVolPtr vol, cbdata =3D NULL; =20 cleanup: - virStoragePoolObjUnlock(obj); + virStoragePoolObjEndAPI(&obj); if (cbdata) virStorageVolPoolRefreshDataFree(cbdata); =20 @@ -2488,7 +2477,7 @@ storageVolResize(virStorageVolPtr vol, ret =3D 0; =20 cleanup: - virStoragePoolObjUnlock(obj); + virStoragePoolObjEndAPI(&obj); =20 return ret; } @@ -2554,7 +2543,7 @@ storageVolWipePattern(virStorageVolPtr vol, ret =3D 0; =20 cleanup: - virStoragePoolObjUnlock(obj); + virStoragePoolObjEndAPI(&obj); =20 return ret; } @@ -2601,7 +2590,7 @@ storageVolGetInfoFlags(virStorageVolPtr vol, ret =3D 0; =20 cleanup: - virStoragePoolObjUnlock(obj); + virStoragePoolObjEndAPI(&obj); return ret; } =20 @@ -2640,7 +2629,7 @@ storageVolGetXMLDesc(virStorageVolPtr vol, ret =3D virStorageVolDefFormat(def, voldef); =20 cleanup: - virStoragePoolObjUnlock(obj); + virStoragePoolObjEndAPI(&obj); =20 return ret; } @@ -2662,7 +2651,7 @@ storageVolGetPath(virStorageVolPtr vol) ignore_value(VIR_STRDUP(ret, voldef->target.path)); =20 cleanup: - virStoragePoolObjUnlock(obj); + virStoragePoolObjEndAPI(&obj); return ret; } =20 diff --git a/src/test/test_driver.c b/src/test/test_driver.c index dbde37cf39..72b3c6db5d 100644 --- a/src/test/test_driver.c +++ b/src/test/test_driver.c @@ -1119,18 +1119,18 @@ testParseStorage(testDriverPtr privconn, } =20 if (testStoragePoolObjSetDefaults(obj) =3D=3D -1) { - virStoragePoolObjUnlock(obj); + virStoragePoolObjEndAPI(&obj); goto error; } virStoragePoolObjSetActive(obj, true); =20 /* Find storage volumes */ if (testOpenVolumesForPool(file, ctxt, obj, i+1) < 0) { - virStoragePoolObjUnlock(obj); + virStoragePoolObjEndAPI(&obj); goto error; } =20 - virStoragePoolObjUnlock(obj); + virStoragePoolObjEndAPI(&obj); } =20 ret =3D 0; @@ -4100,7 +4100,7 @@ testStoragePoolObjFindActiveByName(testDriverPtr priv= conn, if (!virStoragePoolObjIsActive(obj)) { virReportError(VIR_ERR_OPERATION_INVALID, _("storage pool '%s' is not active"), name); - virStoragePoolObjUnlock(obj); + virStoragePoolObjEndAPI(&obj); return NULL; } =20 @@ -4120,7 +4120,7 @@ testStoragePoolObjFindInactiveByName(testDriverPtr pr= ivconn, if (virStoragePoolObjIsActive(obj)) { virReportError(VIR_ERR_OPERATION_INVALID, _("storage pool '%s' is active"), name); - virStoragePoolObjUnlock(obj); + virStoragePoolObjEndAPI(&obj); return NULL; } =20 @@ -4165,7 +4165,7 @@ testStoragePoolLookupByUUID(virConnectPtr conn, =20 pool =3D virGetStoragePool(conn, def->name, def->uuid, NULL, NULL); =20 - virStoragePoolObjUnlock(obj); + virStoragePoolObjEndAPI(&obj); return pool; } =20 @@ -4185,7 +4185,7 @@ testStoragePoolLookupByName(virConnectPtr conn, =20 pool =3D virGetStoragePool(conn, def->name, def->uuid, NULL, NULL); =20 - virStoragePoolObjUnlock(obj); + virStoragePoolObjEndAPI(&obj); return pool; } =20 @@ -4294,7 +4294,7 @@ testStoragePoolIsActive(virStoragePoolPtr pool) =20 cleanup: if (obj) - virStoragePoolObjUnlock(obj); + virStoragePoolObjEndAPI(&obj); return ret; } =20 @@ -4311,7 +4311,7 @@ testStoragePoolIsPersistent(virStoragePoolPtr pool) =20 ret =3D virStoragePoolObjGetConfigFile(obj) ? 1 : 0; =20 - virStoragePoolObjUnlock(obj); + virStoragePoolObjEndAPI(&obj); return ret; } =20 @@ -4336,7 +4336,7 @@ testStoragePoolCreate(virStoragePoolPtr pool, 0); =20 testObjectEventQueue(privconn, event); - virStoragePoolObjUnlock(obj); + virStoragePoolObjEndAPI(&obj); return 0; } =20 @@ -4490,8 +4490,7 @@ testStoragePoolCreateXML(virConnectPtr conn, cleanup: virStoragePoolDefFree(newDef); testObjectEventQueue(privconn, event); - if (obj) - virStoragePoolObjUnlock(obj); + virStoragePoolObjEndAPI(&obj); testDriverUnlock(privconn); return pool; } @@ -4539,8 +4538,7 @@ testStoragePoolDefineXML(virConnectPtr conn, cleanup: virStoragePoolDefFree(newDef); testObjectEventQueue(privconn, event); - if (obj) - virStoragePoolObjUnlock(obj); + virStoragePoolObjEndAPI(&obj); testDriverUnlock(privconn); return pool; } @@ -4584,7 +4582,7 @@ testStoragePoolBuild(virStoragePoolPtr pool, VIR_STORAGE_POOL_EVENT_CREATED, 0); =20 - virStoragePoolObjUnlock(obj); + virStoragePoolObjEndAPI(&obj); =20 testObjectEventQueue(privconn, event); return 0; @@ -4660,8 +4658,7 @@ testStoragePoolDestroy(virStoragePoolPtr pool) =20 cleanup: testObjectEventQueue(privconn, event); - if (obj) - virStoragePoolObjUnlock(obj); + virStoragePoolObjEndAPI(&obj); return ret; } =20 @@ -4685,7 +4682,7 @@ testStoragePoolDelete(virStoragePoolPtr pool, =20 testObjectEventQueue(privconn, event); =20 - virStoragePoolObjUnlock(obj); + virStoragePoolObjEndAPI(&obj); return 0; } =20 @@ -4706,7 +4703,7 @@ testStoragePoolRefresh(virStoragePoolPtr pool, event =3D virStoragePoolEventRefreshNew(pool->name, pool->uuid); =20 testObjectEventQueue(privconn, event); - virStoragePoolObjUnlock(obj); + virStoragePoolObjEndAPI(&obj); return 0; } =20 @@ -4732,7 +4729,7 @@ testStoragePoolGetInfo(virStoragePoolPtr pool, info->allocation =3D def->allocation; info->available =3D def->available; =20 - virStoragePoolObjUnlock(obj); + virStoragePoolObjEndAPI(&obj); return 0; } =20 @@ -4752,7 +4749,7 @@ testStoragePoolGetXMLDesc(virStoragePoolPtr pool, =20 ret =3D virStoragePoolDefFormat(virStoragePoolObjGetDef(obj)); =20 - virStoragePoolObjUnlock(obj); + virStoragePoolObjEndAPI(&obj); return ret; } =20 @@ -4772,7 +4769,7 @@ testStoragePoolGetAutostart(virStoragePoolPtr pool, else *autostart =3D virStoragePoolObjIsAutostart(obj) ? 1 : 0; =20 - virStoragePoolObjUnlock(obj); + virStoragePoolObjEndAPI(&obj); return 0; } =20 @@ -4799,7 +4796,7 @@ testStoragePoolSetAutostart(virStoragePoolPtr pool, ret =3D 0; =20 cleanup: - virStoragePoolObjUnlock(obj); + virStoragePoolObjEndAPI(&obj); return ret; } =20 @@ -4816,7 +4813,7 @@ testStoragePoolNumOfVolumes(virStoragePoolPtr pool) =20 ret =3D virStoragePoolObjNumOfVolumes(obj, pool->conn, NULL); =20 - virStoragePoolObjUnlock(obj); + virStoragePoolObjEndAPI(&obj); return ret; } =20 @@ -4835,7 +4832,7 @@ testStoragePoolListVolumes(virStoragePoolPtr pool, =20 n =3D virStoragePoolObjVolumeGetNames(obj, pool->conn, NULL, names, ma= xnames); =20 - virStoragePoolObjUnlock(obj); + virStoragePoolObjEndAPI(&obj); return n; } =20 @@ -4863,7 +4860,7 @@ testStoragePoolListAllVolumes(virStoragePoolPtr pool, ret =3D virStoragePoolObjVolumeListExport(pool->conn, obj, vols, NULL); =20 cleanup: - virStoragePoolObjUnlock(obj); + virStoragePoolObjEndAPI(&obj); =20 return ret; } @@ -4906,7 +4903,7 @@ testStorageVolLookupByName(virStoragePoolPtr pool, NULL, NULL); =20 cleanup: - virStoragePoolObjUnlock(obj); + virStoragePoolObjEndAPI(&obj); return ret; } =20 @@ -4933,11 +4930,11 @@ testStorageVolLookupByKey(virConnectPtr conn, ret =3D virGetStorageVol(conn, def->name, privvol->name, privvol->key, NULL, NULL); - virStoragePoolObjUnlock(obj); + virStoragePoolObjEndAPI(&obj); break; } } - virStoragePoolObjUnlock(obj); + virStoragePoolObjEndAPI(&obj); } testDriverUnlock(privconn); =20 @@ -4971,11 +4968,11 @@ testStorageVolLookupByPath(virConnectPtr conn, ret =3D virGetStorageVol(conn, def->name, privvol->name, privvol->key, NULL, NULL); - virStoragePoolObjUnlock(obj); + virStoragePoolObjEndAPI(&obj); break; } } - virStoragePoolObjUnlock(obj); + virStoragePoolObjEndAPI(&obj); } testDriverUnlock(privconn); =20 @@ -5041,7 +5038,7 @@ testStorageVolCreateXML(virStoragePoolPtr pool, =20 cleanup: virStorageVolDefFree(privvol); - virStoragePoolObjUnlock(obj); + virStoragePoolObjEndAPI(&obj); return ret; } =20 @@ -5109,7 +5106,7 @@ testStorageVolCreateXMLFrom(virStoragePoolPtr pool, =20 cleanup: virStorageVolDefFree(privvol); - virStoragePoolObjUnlock(obj); + virStoragePoolObjEndAPI(&obj); return ret; } =20 @@ -5141,7 +5138,7 @@ testStorageVolDelete(virStorageVolPtr vol, ret =3D 0; =20 cleanup: - virStoragePoolObjUnlock(obj); + virStoragePoolObjEndAPI(&obj); return ret; } =20 @@ -5185,7 +5182,7 @@ testStorageVolGetInfo(virStorageVolPtr vol, ret =3D 0; =20 cleanup: - virStoragePoolObjUnlock(obj); + virStoragePoolObjEndAPI(&obj); return ret; } =20 @@ -5210,7 +5207,7 @@ testStorageVolGetXMLDesc(virStorageVolPtr vol, ret =3D virStorageVolDefFormat(virStoragePoolObjGetDef(obj), privvol); =20 cleanup: - virStoragePoolObjUnlock(obj); + virStoragePoolObjEndAPI(&obj); return ret; } =20 @@ -5232,7 +5229,7 @@ testStorageVolGetPath(virStorageVolPtr vol) ignore_value(VIR_STRDUP(ret, privvol->target.path)); =20 cleanup: - virStoragePoolObjUnlock(obj); + virStoragePoolObjEndAPI(&obj); return ret; } =20 diff --git a/tests/storagevolxml2argvtest.c b/tests/storagevolxml2argvtest.c index 7b62243df3..0b2f2bb3d3 100644 --- a/tests/storagevolxml2argvtest.c +++ b/tests/storagevolxml2argvtest.c @@ -110,8 +110,7 @@ testCompareXMLToArgvFiles(bool shouldFail, virStorageVolDefFree(inputvol); virCommandFree(cmd); VIR_FREE(actualCmdline); - if (obj) - virStoragePoolObjUnlock(obj); + virStoragePoolObjEndAPI(&obj); virStoragePoolObjFree(obj); virObjectUnref(conn); return ret; --=20 2.13.6 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list