From nobody Fri Apr 19 16:44:25 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=pass(p=none dis=none) header.from=redhat.com Return-Path: Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by mx.zohomail.com with SMTPS id 152061429105561.36976462549467; Fri, 9 Mar 2018 08:51:31 -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 D7812356DD; Fri, 9 Mar 2018 16:51:29 +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 87E9818B91; Fri, 9 Mar 2018 16:51:29 +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 43C2A4CAA3; Fri, 9 Mar 2018 16:51:29 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.phx2.redhat.com [10.5.11.14]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id w29GmQXi000394 for ; Fri, 9 Mar 2018 11:48:26 -0500 Received: by smtp.corp.redhat.com (Postfix) id 6D74418661; Fri, 9 Mar 2018 16:48:26 +0000 (UTC) Received: from unknown54ee7586bd10.attlocal.net.com (ovpn-116-138.phx2.redhat.com [10.3.116.138]) by smtp.corp.redhat.com (Postfix) with ESMTP id 2ABA118B92 for ; Fri, 9 Mar 2018 16:48:22 +0000 (UTC) From: John Ferlan To: libvir-list@redhat.com Date: Fri, 9 Mar 2018 11:47:57 -0500 Message-Id: <20180309164816.837-2-jferlan@redhat.com> In-Reply-To: <20180309164816.837-1-jferlan@redhat.com> References: <20180309164816.837-1-jferlan@redhat.com> X-Scanned-By: MIMEDefang 2.79 on 10.5.11.14 X-loop: libvir-list@redhat.com Subject: [libvirt] [PATCH 01/20] bhyve: Use virDomainObjListFindBy{UUID|ID}Ref 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.30]); Fri, 09 Mar 2018 16:51:30 +0000 (UTC) X-ZohoMail: RSF_0 Z_629925259 SPT_0 Content-Type: text/plain; charset="utf-8" For bhyveDomObjFromDomain, bhyveDomainLookupByUUID, and bhyveDomainLookupByID let's return a locked and referenced @vm object so that callers can then use the common and more consistent virDomainObjEndAPI in order to handle cleanup rather than needing to know that the returned object is locked and calling virObjectUnlock. The LookupByName already returns the ref counted and locked object, so this will make things more consistent. Signed-off-by: John Ferlan --- src/bhyve/bhyve_driver.c | 58 ++++++++++++++++++--------------------------= ---- 1 file changed, 21 insertions(+), 37 deletions(-) diff --git a/src/bhyve/bhyve_driver.c b/src/bhyve/bhyve_driver.c index 849d3abcd..79963570c 100644 --- a/src/bhyve/bhyve_driver.c +++ b/src/bhyve/bhyve_driver.c @@ -168,7 +168,7 @@ bhyveDomObjFromDomain(virDomainPtr domain) bhyveConnPtr privconn =3D domain->conn->privateData; char uuidstr[VIR_UUID_STRING_BUFLEN]; =20 - vm =3D virDomainObjListFindByUUID(privconn->domains, domain->uuid); + vm =3D virDomainObjListFindByUUIDRef(privconn->domains, domain->uuid); if (!vm) { virUUIDFormat(domain->uuid, uuidstr); virReportError(VIR_ERR_NO_DOMAIN, @@ -312,8 +312,7 @@ bhyveDomainGetInfo(virDomainPtr domain, virDomainInfoPt= r info) ret =3D 0; =20 cleanup: - if (vm) - virObjectUnlock(vm); + virDomainObjEndAPI(&vm); return ret; } =20 @@ -338,8 +337,7 @@ bhyveDomainGetState(virDomainPtr domain, ret =3D 0; =20 cleanup: - if (vm) - virObjectUnlock(vm); + virDomainObjEndAPI(&vm); return ret; } =20 @@ -359,8 +357,7 @@ bhyveDomainGetAutostart(virDomainPtr domain, int *autos= tart) ret =3D 0; =20 cleanup: - if (vm) - virObjectUnlock(vm); + virDomainObjEndAPI(&vm); return ret; } =20 @@ -423,8 +420,7 @@ bhyveDomainSetAutostart(virDomainPtr domain, int autost= art) cleanup: VIR_FREE(configFile); VIR_FREE(autostartLink); - if (vm) - virObjectUnlock(vm); + virDomainObjEndAPI(&vm); return ret; } =20 @@ -443,8 +439,7 @@ bhyveDomainIsActive(virDomainPtr domain) ret =3D virDomainObjIsActive(obj); =20 cleanup: - if (obj) - virObjectUnlock(obj); + virDomainObjEndAPI(&obj); return ret; } =20 @@ -463,8 +458,7 @@ bhyveDomainIsPersistent(virDomainPtr domain) ret =3D obj->persistent; =20 cleanup: - if (obj) - virObjectUnlock(obj); + virDomainObjEndAPI(&obj); return ret; } =20 @@ -484,8 +478,7 @@ bhyveDomainGetOSType(virDomainPtr dom) goto cleanup; =20 cleanup: - if (vm) - virObjectUnlock(vm); + virDomainObjEndAPI(&vm); return ret; } =20 @@ -512,8 +505,7 @@ bhyveDomainGetXMLDesc(virDomainPtr domain, unsigned int= flags) =20 virObjectUnref(caps); cleanup: - if (vm) - virObjectUnlock(vm); + virDomainObjEndAPI(&vm); return ret; } =20 @@ -630,8 +622,7 @@ bhyveDomainUndefine(virDomainPtr domain) ret =3D 0; =20 cleanup: - if (vm) - virObjectUnlock(vm); + virDomainObjEndAPI(&vm); if (event) virObjectEventStateQueue(privconn->domainEventState, event); return ret; @@ -803,7 +794,7 @@ bhyveDomainLookupByUUID(virConnectPtr conn, virDomainObjPtr vm; virDomainPtr dom =3D NULL; =20 - vm =3D virDomainObjListFindByUUID(privconn->domains, uuid); + vm =3D virDomainObjListFindByUUIDRef(privconn->domains, uuid); =20 if (!vm) { char uuidstr[VIR_UUID_STRING_BUFLEN]; @@ -819,8 +810,7 @@ bhyveDomainLookupByUUID(virConnectPtr conn, dom =3D virGetDomain(conn, vm->def->name, vm->def->uuid, vm->def->id); =20 cleanup: - if (vm) - virObjectUnlock(vm); + virDomainObjEndAPI(&vm); return dom; } =20 @@ -857,7 +847,7 @@ bhyveDomainLookupByID(virConnectPtr conn, virDomainObjPtr vm; virDomainPtr dom =3D NULL; =20 - vm =3D virDomainObjListFindByID(privconn->domains, id); + vm =3D virDomainObjListFindByIDRef(privconn->domains, id); =20 if (!vm) { virReportError(VIR_ERR_NO_DOMAIN, @@ -871,8 +861,7 @@ bhyveDomainLookupByID(virConnectPtr conn, dom =3D virGetDomain(conn, vm->def->name, vm->def->uuid, vm->def->id); =20 cleanup: - if (vm) - virObjectUnlock(vm); + virDomainObjEndAPI(&vm); return dom; } =20 @@ -913,8 +902,7 @@ bhyveDomainCreateWithFlags(virDomainPtr dom, VIR_DOMAIN_EVENT_STARTED= _BOOTED); =20 cleanup: - if (vm) - virObjectUnlock(vm); + virDomainObjEndAPI(&vm); if (event) virObjectEventStateQueue(privconn->domainEventState, event); return ret; @@ -1028,8 +1016,7 @@ bhyveDomainDestroy(virDomainPtr dom) } =20 cleanup: - if (vm) - virObjectUnlock(vm); + virDomainObjEndAPI(&vm); if (event) virObjectEventStateQueue(privconn->domainEventState, event); return ret; @@ -1056,8 +1043,7 @@ bhyveDomainShutdown(virDomainPtr dom) ret =3D virBhyveProcessShutdown(vm); =20 cleanup: - if (vm) - virObjectUnlock(vm); + virDomainObjEndAPI(&vm); return ret; } =20 @@ -1100,8 +1086,7 @@ bhyveDomainOpenConsole(virDomainPtr dom, ret =3D 0; =20 cleanup: - if (vm) - virObjectUnlock(vm); + virDomainObjEndAPI(&vm); return ret; } =20 @@ -1143,7 +1128,7 @@ bhyveDomainSetMetadata(virDomainPtr dom, =20 cleanup: virObjectUnref(caps); - virObjectUnlock(vm); + virDomainObjEndAPI(&vm); return ret; } =20 @@ -1165,7 +1150,7 @@ bhyveDomainGetMetadata(virDomainPtr dom, ret =3D virDomainObjGetMetadata(vm, type, uri, flags); =20 cleanup: - virObjectUnlock(vm); + virDomainObjEndAPI(&vm); return ret; } =20 @@ -1548,8 +1533,7 @@ bhyveDomainHasManagedSaveImage(virDomainPtr domain, u= nsigned int flags) ret =3D 0; =20 cleanup: - if (vm) - virObjectUnlock(vm); + virDomainObjEndAPI(&vm); return ret; } =20 --=20 2.13.6 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list From nobody Fri Apr 19 16:44:25 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=pass(p=none dis=none) header.from=redhat.com Return-Path: Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by mx.zohomail.com with SMTPS id 1520614295675647.4681161311636; Fri, 9 Mar 2018 08:51:35 -0800 (PST) Received: from smtp.corp.redhat.com (int-mx06.intmail.prod.int.phx2.redhat.com [10.5.11.16]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 93D9B7E9D9; Fri, 9 Mar 2018 16:51:33 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.20]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 6BCFD5C8BF; Fri, 9 Mar 2018 16:51:33 +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 299E5180613A; Fri, 9 Mar 2018 16:51:33 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.phx2.redhat.com [10.5.11.14]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id w29GmQBo000399 for ; Fri, 9 Mar 2018 11:48:26 -0500 Received: by smtp.corp.redhat.com (Postfix) id D8BCA18661; Fri, 9 Mar 2018 16:48:26 +0000 (UTC) Received: from unknown54ee7586bd10.attlocal.net.com (ovpn-116-138.phx2.redhat.com [10.3.116.138]) by smtp.corp.redhat.com (Postfix) with ESMTP id 9706F5DD82 for ; Fri, 9 Mar 2018 16:48:26 +0000 (UTC) From: John Ferlan To: libvir-list@redhat.com Date: Fri, 9 Mar 2018 11:47:58 -0500 Message-Id: <20180309164816.837-3-jferlan@redhat.com> In-Reply-To: <20180309164816.837-1-jferlan@redhat.com> References: <20180309164816.837-1-jferlan@redhat.com> X-Scanned-By: MIMEDefang 2.79 on 10.5.11.14 X-loop: libvir-list@redhat.com Subject: [libvirt] [PATCH 02/20] libxl: Fix possible deadlock in libxlDomainMigrateBegin3Params 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.16 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.26]); Fri, 09 Mar 2018 16:51:34 +0000 (UTC) X-ZohoMail: RSF_0 Z_629925259 SPT_0 Content-Type: text/plain; charset="utf-8" Commit id '45697fe5' added a check for "Domain-0" to generate an error during libxlDomainMigrateBegin3Params; however, by returning NULL, the @vm was left locked since libxlDomObjFromDomain returns a locked @vm. Signed-off-by: John Ferlan Reviewed-by: Jim Fehlig --- src/libxl/libxl_driver.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/libxl/libxl_driver.c b/src/libxl/libxl_driver.c index c3616a86d..b5101626e 100644 --- a/src/libxl/libxl_driver.c +++ b/src/libxl/libxl_driver.c @@ -5895,9 +5895,10 @@ libxlDomainMigrateBegin3Params(virDomainPtr domain, return NULL; =20 if (STREQ_NULLABLE(vm->def->name, "Domain-0")) { - virReportError(VIR_ERR_OPERATION_INVALID, "%s", - _("Domain-0 cannot be migrated")); - return NULL; + virReportError(VIR_ERR_OPERATION_INVALID, "%s", + _("Domain-0 cannot be migrated")); + virObjectUnlock(vm); + return NULL; } =20 if (virDomainMigrateBegin3ParamsEnsureACL(domain->conn, vm->def) < 0) { --=20 2.13.6 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list From nobody Fri Apr 19 16:44:25 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=pass(p=none dis=none) header.from=redhat.com Return-Path: Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by mx.zohomail.com with SMTPS id 1520614223679772.737819313229; Fri, 9 Mar 2018 08:50:23 -0800 (PST) Received: from smtp.corp.redhat.com (int-mx06.intmail.prod.int.phx2.redhat.com [10.5.11.16]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 876132F30A3; Fri, 9 Mar 2018 16:50:21 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.20]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 283825E1A2; Fri, 9 Mar 2018 16:50:21 +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 23DE6180613A; Fri, 9 Mar 2018 16:50:20 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.phx2.redhat.com [10.5.11.14]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id w29GmRA9000405 for ; Fri, 9 Mar 2018 11:48:27 -0500 Received: by smtp.corp.redhat.com (Postfix) id ACFE118661; Fri, 9 Mar 2018 16:48:27 +0000 (UTC) Received: from unknown54ee7586bd10.attlocal.net.com (ovpn-116-138.phx2.redhat.com [10.3.116.138]) by smtp.corp.redhat.com (Postfix) with ESMTP id 6BA8418B85 for ; Fri, 9 Mar 2018 16:48:26 +0000 (UTC) From: John Ferlan To: libvir-list@redhat.com Date: Fri, 9 Mar 2018 11:47:59 -0500 Message-Id: <20180309164816.837-4-jferlan@redhat.com> In-Reply-To: <20180309164816.837-1-jferlan@redhat.com> References: <20180309164816.837-1-jferlan@redhat.com> X-Scanned-By: MIMEDefang 2.79 on 10.5.11.14 X-loop: libvir-list@redhat.com Subject: [libvirt] [PATCH 03/20] libxl: Properly cleanup after libxlDomObjFromDomain 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.16 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.29]); Fri, 09 Mar 2018 16:50:22 +0000 (UTC) X-ZohoMail: RSF_0 Z_629925259 SPT_0 Content-Type: text/plain; charset="utf-8" Commit id '9ac945078' altered libxlDomObjFromDomain to return a locked *and* ref counted object for some specific purposes; however, it neglected to alter all the consumers of the helper to use virDomainObjEndAPI thus leaving many objects with extra ref counts. The two consumers for libxlDomainMigrationConfirm would also originally use the libxlDomObjFromDomain API (either from libxlDomainMigrateConfirm3Params or libxlDoMigrateP2P via libxlDomainMigrationPerformP2P and libxlDomainMigratePerform3Params. Signed-off-by: John Ferlan Reviewed-by: Jim Fehlig --- src/libxl/libxl_driver.c | 86 ++++++++++++++++-------------------------= ---- src/libxl/libxl_migration.c | 3 +- 2 files changed, 31 insertions(+), 58 deletions(-) diff --git a/src/libxl/libxl_driver.c b/src/libxl/libxl_driver.c index b5101626e..9aa4a293c 100644 --- a/src/libxl/libxl_driver.c +++ b/src/libxl/libxl_driver.c @@ -1322,8 +1322,7 @@ libxlDomainShutdownFlags(virDomainPtr dom, unsigned i= nt flags) } =20 cleanup: - if (vm) - virObjectUnlock(vm); + virDomainObjEndAPI(&vm); virObjectUnref(cfg); return ret; } @@ -1373,8 +1372,7 @@ libxlDomainReboot(virDomainPtr dom, unsigned int flag= s) } =20 cleanup: - if (vm) - virObjectUnlock(vm); + virDomainObjEndAPI(&vm); virObjectUnref(cfg); return ret; } @@ -1459,8 +1457,7 @@ libxlDomainGetOSType(virDomainPtr dom) goto cleanup; =20 cleanup: - if (vm) - virObjectUnlock(vm); + virDomainObjEndAPI(&vm); return type; } =20 @@ -1479,8 +1476,7 @@ libxlDomainGetMaxMemory(virDomainPtr dom) ret =3D virDomainDefGetMemoryTotal(vm->def); =20 cleanup: - if (vm) - virObjectUnlock(vm); + virDomainObjEndAPI(&vm); return ret; } =20 @@ -1658,8 +1654,7 @@ libxlDomainGetInfo(virDomainPtr dom, virDomainInfoPtr= info) ret =3D 0; =20 cleanup: - if (vm) - virObjectUnlock(vm); + virDomainObjEndAPI(&vm); virObjectUnref(cfg); return ret; } @@ -1685,8 +1680,7 @@ libxlDomainGetState(virDomainPtr dom, ret =3D 0; =20 cleanup: - if (vm) - virObjectUnlock(vm); + virDomainObjEndAPI(&vm); return ret; } =20 @@ -2110,8 +2104,7 @@ libxlDomainHasManagedSaveImage(virDomainPtr dom, unsi= gned int flags) ret =3D vm->hasManagedSave; =20 cleanup: - if (vm) - virObjectUnlock(vm); + virDomainObjEndAPI(&vm); return ret; } =20 @@ -2140,8 +2133,7 @@ libxlDomainManagedSaveRemove(virDomainPtr dom, unsign= ed int flags) =20 cleanup: VIR_FREE(name); - if (vm) - virObjectUnlock(vm); + virDomainObjEndAPI(&vm); return ret; } =20 @@ -2352,8 +2344,7 @@ libxlDomainGetVcpusFlags(virDomainPtr dom, unsigned i= nt flags) ret =3D virDomainDefGetVcpus(def); =20 cleanup: - if (vm) - virObjectUnlock(vm); + virDomainObjEndAPI(&vm); return ret; } =20 @@ -2484,8 +2475,7 @@ libxlDomainGetVcpuPinInfo(virDomainPtr dom, int ncpum= aps, libxl_get_max_cpus(cfg->ctx), N= ULL); =20 cleanup: - if (vm) - virObjectUnlock(vm); + virDomainObjEndAPI(&vm); virObjectUnref(cfg); return ret; } @@ -2548,8 +2538,7 @@ libxlDomainGetVcpus(virDomainPtr dom, virVcpuInfoPtr = info, int maxinfo, ret =3D maxinfo; =20 cleanup: - if (vm) - virObjectUnlock(vm); + virDomainObjEndAPI(&vm); virObjectUnref(cfg); return ret; } @@ -2580,8 +2569,7 @@ libxlDomainGetXMLDesc(virDomainPtr dom, unsigned int = flags) virDomainDefFormatConvertXMLFlags(flags)); =20 cleanup: - if (vm) - virObjectUnlock(vm); + virDomainObjEndAPI(&vm); virObjectUnref(cfg); return ret; } @@ -2901,8 +2889,7 @@ libxlDomainUndefineFlags(virDomainPtr dom, =20 cleanup: VIR_FREE(name); - if (vm) - virObjectUnlock(vm); + virDomainObjEndAPI(&vm); if (event) libxlDomainEventQueue(driver, event); virObjectUnref(cfg); @@ -4261,8 +4248,7 @@ libxlDomainUpdateDeviceFlags(virDomainPtr dom, const = char *xml, cleanup: virDomainDefFree(vmdef); virDomainDeviceDefFree(dev); - if (vm) - virObjectUnlock(vm); + virDomainObjEndAPI(&vm); virObjectUnref(cfg); return ret; } @@ -4394,8 +4380,7 @@ libxlDomainGetAutostart(virDomainPtr dom, int *autost= art) ret =3D 0; =20 cleanup: - if (vm) - virObjectUnlock(vm); + virDomainObjEndAPI(&vm); return ret; } =20 @@ -4521,8 +4506,7 @@ libxlDomainGetSchedulerType(virDomainPtr dom, int *np= arams) ignore_value(VIR_STRDUP(ret, name)); =20 cleanup: - if (vm) - virObjectUnlock(vm); + virDomainObjEndAPI(&vm); virObjectUnref(cfg); return ret; } @@ -4587,8 +4571,7 @@ libxlDomainGetSchedulerParametersFlags(virDomainPtr d= om, ret =3D 0; =20 cleanup: - if (vm) - virObjectUnlock(vm); + virDomainObjEndAPI(&vm); virObjectUnref(cfg); return ret; } @@ -4750,8 +4733,7 @@ libxlDomainOpenConsole(virDomainPtr dom, } =20 cleanup: - if (vm) - virObjectUnlock(vm); + virDomainObjEndAPI(&vm); return ret; } =20 @@ -4886,8 +4868,7 @@ libxlDomainGetNumaParameters(virDomainPtr dom, VIR_FREE(nodeset); virBitmapFree(nodes); libxl_bitmap_dispose(&nodemap); - if (vm) - virObjectUnlock(vm); + virDomainObjEndAPI(&vm); virObjectUnref(cfg); return ret; } @@ -4908,8 +4889,7 @@ libxlDomainIsActive(virDomainPtr dom) ret =3D virDomainObjIsActive(obj); =20 cleanup: - if (obj) - virObjectUnlock(obj); + virDomainObjEndAPI(&obj); return ret; } =20 @@ -4928,8 +4908,7 @@ libxlDomainIsPersistent(virDomainPtr dom) ret =3D obj->persistent; =20 cleanup: - if (obj) - virObjectUnlock(obj); + virDomainObjEndAPI(&obj); return ret; } =20 @@ -4948,8 +4927,7 @@ libxlDomainIsUpdated(virDomainPtr dom) ret =3D vm->updated; =20 cleanup: - if (vm) - virObjectUnlock(vm); + virDomainObjEndAPI(&vm); return ret; } =20 @@ -5107,8 +5085,7 @@ libxlDomainGetCPUStats(virDomainPtr dom, start_cpu, ncpus); =20 cleanup: - if (vm) - virObjectUnlock(vm); + virDomainObjEndAPI(&vm); return ret; } =20 @@ -5211,8 +5188,7 @@ libxlDomainGetJobInfo(virDomainPtr dom, ret =3D 0; =20 cleanup: - if (vm) - virObjectUnlock(vm); + virDomainObjEndAPI(&vm); return ret; } =20 @@ -5263,8 +5239,7 @@ libxlDomainGetJobStats(virDomainPtr dom, ret =3D 0; =20 cleanup: - if (vm) - virObjectUnlock(vm); + virDomainObjEndAPI(&vm); return ret; } =20 @@ -5897,19 +5872,19 @@ libxlDomainMigrateBegin3Params(virDomainPtr domain, if (STREQ_NULLABLE(vm->def->name, "Domain-0")) { virReportError(VIR_ERR_OPERATION_INVALID, "%s", _("Domain-0 cannot be migrated")); - virObjectUnlock(vm); + virDomainObjEndAPI(&vm); return NULL; } =20 if (virDomainMigrateBegin3ParamsEnsureACL(domain->conn, vm->def) < 0) { - virObjectUnlock(vm); + virDomainObjEndAPI(&vm); return NULL; } =20 if (!virDomainObjIsActive(vm)) { virReportError(VIR_ERR_OPERATION_INVALID, "%s", _("domain is not running")); - virObjectUnlock(vm); + virDomainObjEndAPI(&vm); return NULL; } =20 @@ -6085,8 +6060,7 @@ libxlDomainMigratePerform3Params(virDomainPtr dom, ret =3D 0; =20 cleanup: - if (vm) - virObjectUnlock(vm); + virDomainObjEndAPI(&vm); return ret; } =20 @@ -6174,7 +6148,7 @@ libxlDomainMigrateConfirm3Params(virDomainPtr domain, return -1; =20 if (virDomainMigrateConfirm3ParamsEnsureACL(domain->conn, vm->def) < 0= ) { - virObjectUnlock(vm); + virDomainObjEndAPI(&vm); return -1; } =20 diff --git a/src/libxl/libxl_migration.c b/src/libxl/libxl_migration.c index ccf2daed1..21476f7ac 100644 --- a/src/libxl/libxl_migration.c +++ b/src/libxl/libxl_migration.c @@ -1401,8 +1401,7 @@ libxlDomainMigrationConfirm(libxlDriverPrivatePtr dri= ver, cleanup: if (event) libxlDomainEventQueue(driver, event); - if (vm) - virObjectUnlock(vm); + virDomainObjEndAPI(&vm); virObjectUnref(cfg); return ret; } --=20 2.13.6 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list From nobody Fri Apr 19 16:44:25 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=pass(p=none dis=none) header.from=redhat.com Return-Path: Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by mx.zohomail.com with SMTPS id 1520614231365403.1166758134989; Fri, 9 Mar 2018 08:50:31 -0800 (PST) Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.phx2.redhat.com [10.5.11.13]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id B8B9EC058EDC; Fri, 9 Mar 2018 16:50:29 +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 72CF1438A; Fri, 9 Mar 2018 16:50:29 +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 3D9D44CA99; Fri, 9 Mar 2018 16:50:29 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.phx2.redhat.com [10.5.11.14]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id w29GmSFg000411 for ; Fri, 9 Mar 2018 11:48:28 -0500 Received: by smtp.corp.redhat.com (Postfix) id 7C6AA18661; Fri, 9 Mar 2018 16:48:28 +0000 (UTC) Received: from unknown54ee7586bd10.attlocal.net.com (ovpn-116-138.phx2.redhat.com [10.3.116.138]) by smtp.corp.redhat.com (Postfix) with ESMTP id 3B10C18A79 for ; Fri, 9 Mar 2018 16:48:27 +0000 (UTC) From: John Ferlan To: libvir-list@redhat.com Date: Fri, 9 Mar 2018 11:48:00 -0500 Message-Id: <20180309164816.837-5-jferlan@redhat.com> In-Reply-To: <20180309164816.837-1-jferlan@redhat.com> References: <20180309164816.837-1-jferlan@redhat.com> X-Scanned-By: MIMEDefang 2.79 on 10.5.11.14 X-loop: libvir-list@redhat.com Subject: [libvirt] [PATCH 04/20] libxl: Use virDomainObjListFindBy{UUID|ID}Ref 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.13 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.32]); Fri, 09 Mar 2018 16:50:30 +0000 (UTC) X-ZohoMail: RSF_0 Z_629925259 SPT_0 Content-Type: text/plain; charset="utf-8" For libxlDomainLookupByID and libxlDomainLookupByUUID let's return a locked and referenced @vm object so that callers can then use the common and more consistent virDomainObjEndAPI in order to handle cleanup rather than needing to know that the returned object is locked and calling virObjectUnlock. The LookupByName already returns the ref counted and locked object, so this will make things more consistent. Signed-off-by: John Ferlan Reviewed-by: Jim Fehlig --- src/libxl/libxl_driver.c | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/src/libxl/libxl_driver.c b/src/libxl/libxl_driver.c index 9aa4a293c..e78fe2d4b 100644 --- a/src/libxl/libxl_driver.c +++ b/src/libxl/libxl_driver.c @@ -1090,7 +1090,7 @@ libxlDomainLookupByID(virConnectPtr conn, int id) virDomainObjPtr vm; virDomainPtr dom =3D NULL; =20 - vm =3D virDomainObjListFindByID(driver->domains, id); + vm =3D virDomainObjListFindByIDRef(driver->domains, id); if (!vm) { virReportError(VIR_ERR_NO_DOMAIN, NULL); goto cleanup; @@ -1102,8 +1102,7 @@ libxlDomainLookupByID(virConnectPtr conn, int id) dom =3D virGetDomain(conn, vm->def->name, vm->def->uuid, vm->def->id); =20 cleanup: - if (vm) - virObjectUnlock(vm); + virDomainObjEndAPI(&vm); return dom; } =20 @@ -1114,7 +1113,7 @@ libxlDomainLookupByUUID(virConnectPtr conn, const uns= igned char *uuid) virDomainObjPtr vm; virDomainPtr dom =3D NULL; =20 - vm =3D virDomainObjListFindByUUID(driver->domains, uuid); + vm =3D virDomainObjListFindByUUIDRef(driver->domains, uuid); if (!vm) { virReportError(VIR_ERR_NO_DOMAIN, NULL); goto cleanup; @@ -1126,8 +1125,7 @@ libxlDomainLookupByUUID(virConnectPtr conn, const uns= igned char *uuid) dom =3D virGetDomain(conn, vm->def->name, vm->def->uuid, vm->def->id); =20 cleanup: - if (vm) - virObjectUnlock(vm); + virDomainObjEndAPI(&vm); return dom; } =20 --=20 2.13.6 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list From nobody Fri Apr 19 16:44:25 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=pass(p=none dis=none) header.from=redhat.com Return-Path: Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by mx.zohomail.com with SMTPS id 1520614234289459.62319091902134; Fri, 9 Mar 2018 08:50:34 -0800 (PST) Received: from smtp.corp.redhat.com (int-mx05.intmail.prod.int.phx2.redhat.com [10.5.11.15]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 7E48628202; Fri, 9 Mar 2018 16:50:32 +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 4CF895D78E; Fri, 9 Mar 2018 16:50:32 +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 F386A4CA9C; Fri, 9 Mar 2018 16:50:31 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.phx2.redhat.com [10.5.11.14]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id w29GmSpL000421 for ; Fri, 9 Mar 2018 11:48:28 -0500 Received: by smtp.corp.redhat.com (Postfix) id E73B318A75; Fri, 9 Mar 2018 16:48:28 +0000 (UTC) Received: from unknown54ee7586bd10.attlocal.net.com (ovpn-116-138.phx2.redhat.com [10.3.116.138]) by smtp.corp.redhat.com (Postfix) with ESMTP id A45E37ADA9 for ; Fri, 9 Mar 2018 16:48:28 +0000 (UTC) From: John Ferlan To: libvir-list@redhat.com Date: Fri, 9 Mar 2018 11:48:01 -0500 Message-Id: <20180309164816.837-6-jferlan@redhat.com> In-Reply-To: <20180309164816.837-1-jferlan@redhat.com> References: <20180309164816.837-1-jferlan@redhat.com> X-Scanned-By: MIMEDefang 2.79 on 10.5.11.14 X-loop: libvir-list@redhat.com Subject: [libvirt] [PATCH 05/20] openvz: Cleanup indention 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.15 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.30]); Fri, 09 Mar 2018 16:50:33 +0000 (UTC) X-ZohoMail: RSF_0 Z_629925259 SPT_0 Content-Type: text/plain; charset="utf-8" Some of the indents were only 2 spaces, make consistent w/ 4 spaces Signed-off-by: John Ferlan Reviewed-by: Marc Hartmayer --- src/openvz/openvz_driver.c | 64 +++++++++++++++++++++++-------------------= ---- 1 file changed, 32 insertions(+), 32 deletions(-) diff --git a/src/openvz/openvz_driver.c b/src/openvz/openvz_driver.c index ebdc3890e..a211c370e 100644 --- a/src/openvz/openvz_driver.c +++ b/src/openvz/openvz_driver.c @@ -222,10 +222,10 @@ static int openvzSetInitialConfig(virDomainDefPtr vmd= ef) ret =3D 0; =20 cleanup: - VIR_FREE(confdir); - virCommandFree(cmd); + VIR_FREE(confdir); + virCommandFree(cmd); =20 - return ret; + return ret; } =20 =20 @@ -267,9 +267,9 @@ openvzSetDiskQuota(virDomainDefPtr vmdef, =20 ret =3D 0; cleanup: - virCommandFree(cmd); + virCommandFree(cmd); =20 - return ret; + return ret; } =20 =20 @@ -633,40 +633,40 @@ static int openvzDomainSuspend(virDomainPtr dom) =20 static int openvzDomainResume(virDomainPtr dom) { - struct openvz_driver *driver =3D dom->conn->privateData; - virDomainObjPtr vm; - const char *prog[] =3D {VZCTL, "--quiet", "chkpnt", PROGRAM_SENTINEL, "-= -resume", NULL}; - int ret =3D -1; + struct openvz_driver *driver =3D dom->conn->privateData; + virDomainObjPtr vm; + const char *prog[] =3D {VZCTL, "--quiet", "chkpnt", PROGRAM_SENTINEL, = "--resume", NULL}; + int ret =3D -1; =20 - openvzDriverLock(driver); - vm =3D virDomainObjListFindByUUID(driver->domains, dom->uuid); - openvzDriverUnlock(driver); + openvzDriverLock(driver); + vm =3D virDomainObjListFindByUUID(driver->domains, dom->uuid); + openvzDriverUnlock(driver); =20 - if (!vm) { - virReportError(VIR_ERR_NO_DOMAIN, "%s", - _("no domain with matching uuid")); - goto cleanup; - } + if (!vm) { + virReportError(VIR_ERR_NO_DOMAIN, "%s", + _("no domain with matching uuid")); + goto cleanup; + } =20 - if (!virDomainObjIsActive(vm)) { - virReportError(VIR_ERR_OPERATION_INVALID, "%s", - _("Domain is not running")); - goto cleanup; - } + if (!virDomainObjIsActive(vm)) { + virReportError(VIR_ERR_OPERATION_INVALID, "%s", + _("Domain is not running")); + goto cleanup; + } =20 - if (virDomainObjGetState(vm, NULL) =3D=3D VIR_DOMAIN_PAUSED) { - openvzSetProgramSentinal(prog, vm->def->name); - if (virRun(prog, NULL) < 0) - goto cleanup; - virDomainObjSetState(vm, VIR_DOMAIN_RUNNING, VIR_DOMAIN_RUNNING_UNPA= USED); - } + if (virDomainObjGetState(vm, NULL) =3D=3D VIR_DOMAIN_PAUSED) { + openvzSetProgramSentinal(prog, vm->def->name); + if (virRun(prog, NULL) < 0) + goto cleanup; + virDomainObjSetState(vm, VIR_DOMAIN_RUNNING, VIR_DOMAIN_RUNNING_UN= PAUSED); + } =20 - ret =3D 0; + ret =3D 0; =20 cleanup: - if (vm) - virObjectUnlock(vm); - return ret; + if (vm) + virObjectUnlock(vm); + return ret; } =20 static int --=20 2.13.6 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list From nobody Fri Apr 19 16:44:25 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=pass(p=none dis=none) header.from=redhat.com Return-Path: Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by mx.zohomail.com with SMTPS id 1520614240441437.40951462495275; Fri, 9 Mar 2018 08:50:40 -0800 (PST) Received: from smtp.corp.redhat.com (int-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.11]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id B7E8E4A71B; Fri, 9 Mar 2018 16:50:38 +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 93BA6620AE; Fri, 9 Mar 2018 16:50:38 +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 5DB3D4CA9D; Fri, 9 Mar 2018 16:50:38 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.phx2.redhat.com [10.5.11.14]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id w29GmUdH000438 for ; Fri, 9 Mar 2018 11:48:30 -0500 Received: by smtp.corp.redhat.com (Postfix) id 9EF8218A75; Fri, 9 Mar 2018 16:48:30 +0000 (UTC) Received: from unknown54ee7586bd10.attlocal.net.com (ovpn-116-138.phx2.redhat.com [10.3.116.138]) by smtp.corp.redhat.com (Postfix) with ESMTP id 5E1E518A7F for ; Fri, 9 Mar 2018 16:48:29 +0000 (UTC) From: John Ferlan To: libvir-list@redhat.com Date: Fri, 9 Mar 2018 11:48:02 -0500 Message-Id: <20180309164816.837-7-jferlan@redhat.com> In-Reply-To: <20180309164816.837-1-jferlan@redhat.com> References: <20180309164816.837-1-jferlan@redhat.com> X-Scanned-By: MIMEDefang 2.79 on 10.5.11.14 X-loop: libvir-list@redhat.com Subject: [libvirt] [PATCH 06/20] openvz: Create accessors to virDomainObjListFindByUUID 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.11 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.38]); Fri, 09 Mar 2018 16:50:39 +0000 (UTC) X-ZohoMail: RSF_0 Z_629925259 SPT_0 Content-Type: text/plain; charset="utf-8" Rather than repeat code throughout, create and use a couple of accessors in order to lookup by UUID. Signed-off-by: John Ferlan Reviewed-by: Jim Fehlig --- src/openvz/openvz_driver.c | 266 +++++++++++++----------------------------= ---- 1 file changed, 76 insertions(+), 190 deletions(-) diff --git a/src/openvz/openvz_driver.c b/src/openvz/openvz_driver.c index a211c370e..167ba2f7a 100644 --- a/src/openvz/openvz_driver.c +++ b/src/openvz/openvz_driver.c @@ -87,6 +87,39 @@ static void openvzDriverUnlock(struct openvz_driver *dri= ver) =20 struct openvz_driver ovz_driver; =20 + +static virDomainObjPtr +openvzDomObjFromDomainLocked(struct openvz_driver *driver, + const unsigned char *uuid) +{ + virDomainObjPtr vm; + char uuidstr[VIR_UUID_STRING_BUFLEN]; + + if (!(vm =3D virDomainObjListFindByUUID(driver->domains, uuid))) { + virUUIDFormat(uuid, uuidstr); + + virReportError(VIR_ERR_NO_DOMAIN, + _("no domain with matching uuid '%s'"), uuidstr); + return NULL; + } + + return vm; +} + + +static virDomainObjPtr +openvzDomObjFromDomain(struct openvz_driver *driver, + const unsigned char *uuid) +{ + virDomainObjPtr vm; + + openvzDriverLock(driver); + vm =3D openvzDomObjFromDomainLocked(driver, uuid); + openvzDriverUnlock(driver); + return vm; +} + + static int openvzDomainDefPostParse(virDomainDefPtr def, virCapsPtr caps ATTRIBUTE_UNUSED, @@ -281,15 +314,8 @@ openvzDomainGetHostname(virDomainPtr dom, unsigned int= flags) virDomainObjPtr vm; =20 virCheckFlags(0, NULL); - openvzDriverLock(driver); - vm =3D virDomainObjListFindByUUID(driver->domains, dom->uuid); - openvzDriverUnlock(driver); - - if (!vm) { - virReportError(VIR_ERR_NO_DOMAIN, "%s", - _("no domain with matching uuid")); - goto cleanup; - } + if (!(vm =3D openvzDomObjFromDomain(driver, dom->uuid))) + return NULL; =20 hostname =3D openvzVEGetStringParam(dom, "hostname"); if (hostname =3D=3D NULL) @@ -359,18 +385,11 @@ static char *openvzDomainGetOSType(virDomainPtr dom) virDomainObjPtr vm; char *ret =3D NULL; =20 - openvzDriverLock(driver); - vm =3D virDomainObjListFindByUUID(driver->domains, dom->uuid); - openvzDriverUnlock(driver); - - if (!vm) { - virReportError(VIR_ERR_NO_DOMAIN, NULL); - goto cleanup; - } + if (!(vm =3D openvzDomObjFromDomain(driver, dom->uuid))) + return NULL; =20 ignore_value(VIR_STRDUP(ret, virDomainOSTypeToString(vm->def->os.type)= )); =20 - cleanup: if (vm) virObjectUnlock(vm); return ret; @@ -384,18 +403,11 @@ static virDomainPtr openvzDomainLookupByUUID(virConne= ctPtr conn, virDomainObjPtr vm; virDomainPtr dom =3D NULL; =20 - openvzDriverLock(driver); - vm =3D virDomainObjListFindByUUID(driver->domains, uuid); - openvzDriverUnlock(driver); - - if (!vm) { - virReportError(VIR_ERR_NO_DOMAIN, NULL); - goto cleanup; - } + if (!(vm =3D openvzDomObjFromDomain(driver, uuid))) + return NULL; =20 dom =3D virGetDomain(conn, vm->def->name, vm->def->uuid, vm->def->id); =20 - cleanup: if (vm) virObjectUnlock(vm); return dom; @@ -432,15 +444,8 @@ static int openvzDomainGetInfo(virDomainPtr dom, int state; int ret =3D -1; =20 - openvzDriverLock(driver); - vm =3D virDomainObjListFindByUUID(driver->domains, dom->uuid); - openvzDriverUnlock(driver); - - if (!vm) { - virReportError(VIR_ERR_NO_DOMAIN, "%s", - _("no domain with matching uuid")); - goto cleanup; - } + if (!(vm =3D openvzDomObjFromDomain(driver, dom->uuid))) + return -1; =20 if (openvzGetVEStatus(vm, &state, NULL) =3D=3D -1) goto cleanup; @@ -480,19 +485,11 @@ openvzDomainGetState(virDomainPtr dom, =20 virCheckFlags(0, -1); =20 - openvzDriverLock(driver); - vm =3D virDomainObjListFindByUUID(driver->domains, dom->uuid); - openvzDriverUnlock(driver); - - if (!vm) { - virReportError(VIR_ERR_NO_DOMAIN, "%s", - _("no domain with matching uuid")); - goto cleanup; - } + if (!(vm =3D openvzDomObjFromDomain(driver, dom->uuid))) + return -1; =20 ret =3D openvzGetVEStatus(vm, state, reason); =20 - cleanup: if (vm) virObjectUnlock(vm); return ret; @@ -505,16 +502,11 @@ static int openvzDomainIsActive(virDomainPtr dom) virDomainObjPtr obj; int ret =3D -1; =20 - openvzDriverLock(driver); - obj =3D virDomainObjListFindByUUID(driver->domains, dom->uuid); - openvzDriverUnlock(driver); - if (!obj) { - virReportError(VIR_ERR_NO_DOMAIN, NULL); - goto cleanup; - } + if (!(obj =3D openvzDomObjFromDomain(driver, dom->uuid))) + return -1; + ret =3D virDomainObjIsActive(obj); =20 - cleanup: if (obj) virObjectUnlock(obj); return ret; @@ -527,16 +519,11 @@ static int openvzDomainIsPersistent(virDomainPtr dom) virDomainObjPtr obj; int ret =3D -1; =20 - openvzDriverLock(driver); - obj =3D virDomainObjListFindByUUID(driver->domains, dom->uuid); - openvzDriverUnlock(driver); - if (!obj) { - virReportError(VIR_ERR_NO_DOMAIN, NULL); - goto cleanup; - } + if (!(obj =3D openvzDomObjFromDomain(driver, dom->uuid))) + return -1; + ret =3D obj->persistent; =20 - cleanup: if (obj) virObjectUnlock(obj); return ret; @@ -554,20 +541,12 @@ static char *openvzDomainGetXMLDesc(virDomainPtr dom,= unsigned int flags) { =20 /* Flags checked by virDomainDefFormat */ =20 - openvzDriverLock(driver); - vm =3D virDomainObjListFindByUUID(driver->domains, dom->uuid); - openvzDriverUnlock(driver); - - if (!vm) { - virReportError(VIR_ERR_NO_DOMAIN, "%s", - _("no domain with matching uuid")); - goto cleanup; - } + if (!(vm =3D openvzDomObjFromDomain(driver, dom->uuid))) + return NULL; =20 ret =3D virDomainDefFormat(vm->def, driver->caps, virDomainDefFormatConvertXMLFlags(flags)); =20 - cleanup: if (vm) virObjectUnlock(vm); return ret; @@ -600,15 +579,8 @@ static int openvzDomainSuspend(virDomainPtr dom) const char *prog[] =3D {VZCTL, "--quiet", "chkpnt", PROGRAM_SENTINEL, = "--suspend", NULL}; int ret =3D -1; =20 - openvzDriverLock(driver); - vm =3D virDomainObjListFindByUUID(driver->domains, dom->uuid); - openvzDriverUnlock(driver); - - if (!vm) { - virReportError(VIR_ERR_NO_DOMAIN, "%s", - _("no domain with matching uuid")); - goto cleanup; - } + if (!(vm =3D openvzDomObjFromDomain(driver, dom->uuid))) + return -1; =20 if (!virDomainObjIsActive(vm)) { virReportError(VIR_ERR_OPERATION_INVALID, "%s", @@ -638,15 +610,8 @@ static int openvzDomainResume(virDomainPtr dom) const char *prog[] =3D {VZCTL, "--quiet", "chkpnt", PROGRAM_SENTINEL, = "--resume", NULL}; int ret =3D -1; =20 - openvzDriverLock(driver); - vm =3D virDomainObjListFindByUUID(driver->domains, dom->uuid); - openvzDriverUnlock(driver); - - if (!vm) { - virReportError(VIR_ERR_NO_DOMAIN, "%s", - _("no domain with matching uuid")); - goto cleanup; - } + if (!(vm =3D openvzDomObjFromDomain(driver, dom->uuid))) + return -1; =20 if (!virDomainObjIsActive(vm)) { virReportError(VIR_ERR_OPERATION_INVALID, "%s", @@ -681,15 +646,8 @@ openvzDomainShutdownFlags(virDomainPtr dom, =20 virCheckFlags(0, -1); =20 - openvzDriverLock(driver); - vm =3D virDomainObjListFindByUUID(driver->domains, dom->uuid); - openvzDriverUnlock(driver); - - if (!vm) { - virReportError(VIR_ERR_NO_DOMAIN, "%s", - _("no domain with matching uuid")); - goto cleanup; - } + if (!(vm =3D openvzDomObjFromDomain(driver, dom->uuid))) + return -1; =20 if (openvzGetVEStatus(vm, &status, NULL) =3D=3D -1) goto cleanup; @@ -744,15 +702,8 @@ static int openvzDomainReboot(virDomainPtr dom, =20 virCheckFlags(0, -1); =20 - openvzDriverLock(driver); - vm =3D virDomainObjListFindByUUID(driver->domains, dom->uuid); - openvzDriverUnlock(driver); - - if (!vm) { - virReportError(VIR_ERR_NO_DOMAIN, "%s", - _("no domain with matching uuid")); - goto cleanup; - } + if (!(vm =3D openvzDomObjFromDomain(driver, dom->uuid))) + return -1; =20 if (openvzGetVEStatus(vm, &status, NULL) =3D=3D -1) goto cleanup; @@ -1210,12 +1161,8 @@ openvzDomainUndefineFlags(virDomainPtr dom, virCheckFlags(0, -1); =20 openvzDriverLock(driver); - vm =3D virDomainObjListFindByUUID(driver->domains, dom->uuid); - if (!vm) { - virReportError(VIR_ERR_NO_DOMAIN, "%s", - _("no domain with matching uuid")); + if (!(vm =3D openvzDomObjFromDomainLocked(driver, dom->uuid))) goto cleanup; - } =20 if (openvzGetVEStatus(vm, &status, NULL) =3D=3D -1) goto cleanup; @@ -1255,15 +1202,8 @@ openvzDomainSetAutostart(virDomainPtr dom, int autos= tart) "--save", NULL }; int ret =3D -1; =20 - openvzDriverLock(driver); - vm =3D virDomainObjListFindByUUID(driver->domains, dom->uuid); - openvzDriverUnlock(driver); - - if (!vm) { - virReportError(VIR_ERR_NO_DOMAIN, "%s", - _("no domain with matching uuid")); - goto cleanup; - } + if (!(vm =3D openvzDomObjFromDomain(driver, dom->uuid))) + return -1; =20 openvzSetProgramSentinal(prog, vm->def->name); if (virRun(prog, NULL) < 0) @@ -1284,15 +1224,8 @@ openvzDomainGetAutostart(virDomainPtr dom, int *auto= start) char *value =3D NULL; int ret =3D -1; =20 - openvzDriverLock(driver); - vm =3D virDomainObjListFindByUUID(driver->domains, dom->uuid); - openvzDriverUnlock(driver); - - if (!vm) { - virReportError(VIR_ERR_NO_DOMAIN, "%s", - _("no domain with matching uuid")); - goto cleanup; - } + if (!(vm =3D openvzDomObjFromDomain(driver, dom->uuid))) + return -1; =20 if (openvzReadVPSConfigParam(strtoI(vm->def->name), "ONBOOT", &value) = < 0) { virReportError(VIR_ERR_INTERNAL_ERROR, "%s", @@ -1383,15 +1316,8 @@ static int openvzDomainSetVcpusFlags(virDomainPtr do= m, unsigned int nvcpus, return -1; } =20 - openvzDriverLock(driver); - vm =3D virDomainObjListFindByUUID(driver->domains, dom->uuid); - openvzDriverUnlock(driver); - - if (!vm) { - virReportError(VIR_ERR_NO_DOMAIN, "%s", - _("no domain with matching uuid")); - goto cleanup; - } + if (!(vm =3D openvzDomObjFromDomain(driver, dom->uuid))) + return -1; =20 if (nvcpus <=3D 0) { virReportError(VIR_ERR_INTERNAL_ERROR, "%s", @@ -1987,17 +1913,8 @@ openvzDomainInterfaceStats(virDomainPtr dom, virDomainNetDefPtr net =3D NULL; int ret =3D -1; =20 - openvzDriverLock(driver); - vm =3D virDomainObjListFindByUUID(driver->domains, dom->uuid); - openvzDriverUnlock(driver); - - if (!vm) { - char uuidstr[VIR_UUID_STRING_BUFLEN]; - virUUIDFormat(dom->uuid, uuidstr); - virReportError(VIR_ERR_NO_DOMAIN, - _("no domain with matching uuid '%s'"), uuidstr); - goto cleanup; - } + if (!(vm =3D openvzDomObjFromDomain(driver, dom->uuid))) + return -1; =20 if (!virDomainObjIsActive(vm)) { virReportError(VIR_ERR_OPERATION_INVALID, @@ -2082,13 +1999,8 @@ openvzDomainUpdateDeviceFlags(virDomainPtr dom, cons= t char *xml, VIR_DOMAIN_DEVICE_MODIFY_CONFIG, -1); =20 openvzDriverLock(driver); - vm =3D virDomainObjListFindByUUID(driver->domains, dom->uuid); - - if (!vm) { - virReportError(VIR_ERR_NO_DOMAIN, "%s", - _("no domain with matching uuid")); + if (!(vm =3D openvzDomObjFromDomainLocked(driver, dom->uuid))) goto cleanup; - } =20 if (virStrToLong_i(vm->def->name, NULL, 10, &veid) < 0) { virReportError(VIR_ERR_INTERNAL_ERROR, "%s", @@ -2230,15 +2142,8 @@ openvzDomainMigrateBegin3Params(virDomainPtr domain, if (virTypedParamsValidate(params, nparams, OPENVZ_MIGRATION_PARAMETER= S) < 0) return NULL; =20 - openvzDriverLock(driver); - vm =3D virDomainObjListFindByUUID(driver->domains, domain->uuid); - openvzDriverUnlock(driver); - - if (!vm) { - virReportError(VIR_ERR_NO_DOMAIN, "%s", - _("no domain with matching uuid")); - goto cleanup; - } + if (!(vm =3D openvzDomObjFromDomain(driver, domain->uuid))) + return NULL; =20 if (!virDomainObjIsActive(vm)) { virReportError(VIR_ERR_OPERATION_INVALID, @@ -2394,15 +2299,8 @@ openvzDomainMigratePerform3Params(virDomainPtr domai= n, &uri_str) < 0) goto cleanup; =20 - openvzDriverLock(driver); - vm =3D virDomainObjListFindByUUID(driver->domains, domain->uuid); - openvzDriverUnlock(driver); - - if (!vm) { - virReportError(VIR_ERR_NO_DOMAIN, "%s", - _("no domain with matching uuid")); + if (!(vm =3D openvzDomObjFromDomain(driver, domain->uuid))) goto cleanup; - } =20 /* parse dst host:port from uri */ uri =3D virURIParse(uri_str); @@ -2504,15 +2402,8 @@ openvzDomainMigrateConfirm3Params(virDomainPtr domai= n, if (virTypedParamsValidate(params, nparams, OPENVZ_MIGRATION_PARAMETER= S) < 0) goto cleanup; =20 - openvzDriverLock(driver); - vm =3D virDomainObjListFindByUUID(driver->domains, domain->uuid); - openvzDriverUnlock(driver); - - if (!vm) { - virReportError(VIR_ERR_NO_DOMAIN, "%s", - _("no domain with matching uuid")); + if (!(vm =3D openvzDomObjFromDomain(driver, domain->uuid))) goto cleanup; - } =20 if (cancelled) { if (openvzGetVEStatus(vm, &status, NULL) =3D=3D -1) @@ -2552,16 +2443,11 @@ openvzDomainHasManagedSaveImage(virDomainPtr dom, u= nsigned int flags) =20 virCheckFlags(0, -1); =20 - openvzDriverLock(driver); - obj =3D virDomainObjListFindByUUID(driver->domains, dom->uuid); - openvzDriverUnlock(driver); - if (!obj) { - virReportError(VIR_ERR_NO_DOMAIN, NULL); - goto cleanup; - } + if (!(obj =3D openvzDomObjFromDomain(driver, dom->uuid))) + return -1; + ret =3D 0; =20 - cleanup: if (obj) virObjectUnlock(obj); return ret; --=20 2.13.6 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list From nobody Fri Apr 19 16:44:25 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=pass(p=none dis=none) header.from=redhat.com Return-Path: Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by mx.zohomail.com with SMTPS id 1520614298515715.4269419667223; Fri, 9 Mar 2018 08:51:38 -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 3296A7E9C9; Fri, 9 Mar 2018 16:51:37 +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 EF21BBAB5; Fri, 9 Mar 2018 16:51:36 +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 973B44CAAB; Fri, 9 Mar 2018 16:51:36 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.phx2.redhat.com [10.5.11.14]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id w29GmW70000465 for ; Fri, 9 Mar 2018 11:48:32 -0500 Received: by smtp.corp.redhat.com (Postfix) id ECD4718A50; Fri, 9 Mar 2018 16:48:32 +0000 (UTC) Received: from unknown54ee7586bd10.attlocal.net.com (ovpn-116-138.phx2.redhat.com [10.3.116.138]) by smtp.corp.redhat.com (Postfix) with ESMTP id A8FB218A72 for ; Fri, 9 Mar 2018 16:48:30 +0000 (UTC) From: John Ferlan To: libvir-list@redhat.com Date: Fri, 9 Mar 2018 11:48:03 -0500 Message-Id: <20180309164816.837-8-jferlan@redhat.com> In-Reply-To: <20180309164816.837-1-jferlan@redhat.com> References: <20180309164816.837-1-jferlan@redhat.com> X-Scanned-By: MIMEDefang 2.79 on 10.5.11.14 X-loop: libvir-list@redhat.com Subject: [libvirt] [PATCH 07/20] openvz: Add more descriptive error message on Find failure 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]); Fri, 09 Mar 2018 16:51:37 +0000 (UTC) X-ZohoMail: RSF_0 Z_629925259 SPT_0 Content-Type: text/plain; charset="utf-8" If openvzDomainLookupByID or openvzDomainLookupByName fails to find a vm, let's be a bit more descriptive by providing the failing id or name in the error message. Signed-off-by: John Ferlan Reviewed-by: Jim Fehlig --- src/openvz/openvz_driver.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/openvz/openvz_driver.c b/src/openvz/openvz_driver.c index 167ba2f7a..b31bf0714 100644 --- a/src/openvz/openvz_driver.c +++ b/src/openvz/openvz_driver.c @@ -351,7 +351,8 @@ static virDomainPtr openvzDomainLookupByID(virConnectPt= r conn, openvzDriverUnlock(driver); =20 if (!vm) { - virReportError(VIR_ERR_NO_DOMAIN, NULL); + virReportError(VIR_ERR_NO_DOMAIN, + _("no domain with matching id '%d'"), id); goto cleanup; } =20 @@ -425,7 +426,8 @@ static virDomainPtr openvzDomainLookupByName(virConnect= Ptr conn, openvzDriverUnlock(driver); =20 if (!vm) { - virReportError(VIR_ERR_NO_DOMAIN, NULL); + virReportError(VIR_ERR_NO_DOMAIN, + _("no domain with matching name '%s'"), name); goto cleanup; } =20 @@ -1113,8 +1115,8 @@ openvzDomainCreateWithFlags(virDomainPtr dom, unsigne= d int flags) openvzDriverUnlock(driver); =20 if (!vm) { - virReportError(VIR_ERR_NO_DOMAIN, "%s", - _("no domain with matching id")); + virReportError(VIR_ERR_NO_DOMAIN, + _("no domain with matching name '%s'"), dom->name); goto cleanup; } =20 --=20 2.13.6 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list From nobody Fri Apr 19 16:44:25 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=pass(p=none dis=none) header.from=redhat.com Return-Path: Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by mx.zohomail.com with SMTPS id 1520614301786776.5324006575358; Fri, 9 Mar 2018 08:51:41 -0800 (PST) Received: from smtp.corp.redhat.com (int-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.11]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 0A3C128207; Fri, 9 Mar 2018 16:51:40 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.20]) by smtp.corp.redhat.com (Postfix) with ESMTPS id CC35164423; Fri, 9 Mar 2018 16:51:39 +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 86443181B9FE; Fri, 9 Mar 2018 16:51:39 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.phx2.redhat.com [10.5.11.14]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id w29GmY5h000479 for ; Fri, 9 Mar 2018 11:48:34 -0500 Received: by smtp.corp.redhat.com (Postfix) id 0E48118661; Fri, 9 Mar 2018 16:48:34 +0000 (UTC) Received: from unknown54ee7586bd10.attlocal.net.com (ovpn-116-138.phx2.redhat.com [10.3.116.138]) by smtp.corp.redhat.com (Postfix) with ESMTP id C16ED18664 for ; Fri, 9 Mar 2018 16:48:33 +0000 (UTC) From: John Ferlan To: libvir-list@redhat.com Date: Fri, 9 Mar 2018 11:48:04 -0500 Message-Id: <20180309164816.837-9-jferlan@redhat.com> In-Reply-To: <20180309164816.837-1-jferlan@redhat.com> References: <20180309164816.837-1-jferlan@redhat.com> X-Scanned-By: MIMEDefang 2.79 on 10.5.11.14 X-loop: libvir-list@redhat.com Subject: [libvirt] [PATCH 08/20] openvz: Use virDomainObjListFindBy{UUID|ID}Ref 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.11 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.30]); Fri, 09 Mar 2018 16:51:40 +0000 (UTC) X-ZohoMail: RSF_0 Z_629925259 SPT_0 Content-Type: text/plain; charset="utf-8" For openvzDomObjFromDomainLocked and openvzDomainLookupByID let's return a locked and referenced @vm object so that callers can then use the common and more consistent virDomainObjEndAPI in order to handle cleanup rather than needing to know that the returned object is locked and calling virObjectUnlock. The LookupByName already returns the ref counted and locked object, so this will make things more consistent. Signed-off-by: John Ferlan Reviewed-by: Jim Fehlig --- src/openvz/openvz_driver.c | 76 ++++++++++++++++--------------------------= ---- 1 file changed, 26 insertions(+), 50 deletions(-) diff --git a/src/openvz/openvz_driver.c b/src/openvz/openvz_driver.c index b31bf0714..b0b72b171 100644 --- a/src/openvz/openvz_driver.c +++ b/src/openvz/openvz_driver.c @@ -95,7 +95,7 @@ openvzDomObjFromDomainLocked(struct openvz_driver *driver, virDomainObjPtr vm; char uuidstr[VIR_UUID_STRING_BUFLEN]; =20 - if (!(vm =3D virDomainObjListFindByUUID(driver->domains, uuid))) { + if (!(vm =3D virDomainObjListFindByUUIDRef(driver->domains, uuid))) { virUUIDFormat(uuid, uuidstr); =20 virReportError(VIR_ERR_NO_DOMAIN, @@ -329,8 +329,7 @@ openvzDomainGetHostname(virDomainPtr dom, unsigned int = flags) } =20 cleanup: - if (vm) - virObjectUnlock(vm); + virDomainObjEndAPI(&vm); return hostname; =20 error: @@ -347,7 +346,7 @@ static virDomainPtr openvzDomainLookupByID(virConnectPt= r conn, virDomainPtr dom =3D NULL; =20 openvzDriverLock(driver); - vm =3D virDomainObjListFindByID(driver->domains, id); + vm =3D virDomainObjListFindByIDRef(driver->domains, id); openvzDriverUnlock(driver); =20 if (!vm) { @@ -359,8 +358,7 @@ static virDomainPtr openvzDomainLookupByID(virConnectPt= r conn, dom =3D virGetDomain(conn, vm->def->name, vm->def->uuid, vm->def->id); =20 cleanup: - if (vm) - virObjectUnlock(vm); + virDomainObjEndAPI(&vm); return dom; } =20 @@ -391,8 +389,7 @@ static char *openvzDomainGetOSType(virDomainPtr dom) =20 ignore_value(VIR_STRDUP(ret, virDomainOSTypeToString(vm->def->os.type)= )); =20 - if (vm) - virObjectUnlock(vm); + virDomainObjEndAPI(&vm); return ret; } =20 @@ -409,8 +406,7 @@ static virDomainPtr openvzDomainLookupByUUID(virConnect= Ptr conn, =20 dom =3D virGetDomain(conn, vm->def->name, vm->def->uuid, vm->def->id); =20 - if (vm) - virObjectUnlock(vm); + virDomainObjEndAPI(&vm); return dom; } =20 @@ -469,8 +465,7 @@ static int openvzDomainGetInfo(virDomainPtr dom, ret =3D 0; =20 cleanup: - if (vm) - virObjectUnlock(vm); + virDomainObjEndAPI(&vm); return ret; } =20 @@ -492,8 +487,7 @@ openvzDomainGetState(virDomainPtr dom, =20 ret =3D openvzGetVEStatus(vm, state, reason); =20 - if (vm) - virObjectUnlock(vm); + virDomainObjEndAPI(&vm); return ret; } =20 @@ -509,8 +503,7 @@ static int openvzDomainIsActive(virDomainPtr dom) =20 ret =3D virDomainObjIsActive(obj); =20 - if (obj) - virObjectUnlock(obj); + virDomainObjEndAPI(&obj); return ret; } =20 @@ -526,8 +519,7 @@ static int openvzDomainIsPersistent(virDomainPtr dom) =20 ret =3D obj->persistent; =20 - if (obj) - virObjectUnlock(obj); + virDomainObjEndAPI(&obj); return ret; } =20 @@ -549,8 +541,7 @@ static char *openvzDomainGetXMLDesc(virDomainPtr dom, u= nsigned int flags) { ret =3D virDomainDefFormat(vm->def, driver->caps, virDomainDefFormatConvertXMLFlags(flags)); =20 - if (vm) - virObjectUnlock(vm); + virDomainObjEndAPI(&vm); return ret; } =20 @@ -600,8 +591,7 @@ static int openvzDomainSuspend(virDomainPtr dom) ret =3D 0; =20 cleanup: - if (vm) - virObjectUnlock(vm); + virDomainObjEndAPI(&vm); return ret; } =20 @@ -631,8 +621,7 @@ static int openvzDomainResume(virDomainPtr dom) ret =3D 0; =20 cleanup: - if (vm) - virObjectUnlock(vm); + virDomainObjEndAPI(&vm); return ret; } =20 @@ -670,8 +659,7 @@ openvzDomainShutdownFlags(virDomainPtr dom, ret =3D 0; =20 cleanup: - if (vm) - virObjectUnlock(vm); + virDomainObjEndAPI(&vm); return ret; } =20 @@ -724,8 +712,7 @@ static int openvzDomainReboot(virDomainPtr dom, virDomainObjSetState(vm, VIR_DOMAIN_RUNNING, VIR_DOMAIN_RUNNING_BOOTED= ); =20 cleanup: - if (vm) - virObjectUnlock(vm); + virDomainObjEndAPI(&vm); return ret; } =20 @@ -1183,8 +1170,7 @@ openvzDomainUndefineFlags(virDomainPtr dom, ret =3D 0; =20 cleanup: - if (vm) - virObjectUnlock(vm); + virDomainObjEndAPI(&vm); openvzDriverUnlock(driver); return ret; } @@ -1213,8 +1199,7 @@ openvzDomainSetAutostart(virDomainPtr dom, int autost= art) ret =3D 0; =20 cleanup: - if (vm) - virObjectUnlock(vm); + virDomainObjEndAPI(&vm); return ret; } =20 @@ -1243,8 +1228,7 @@ openvzDomainGetAutostart(virDomainPtr dom, int *autos= tart) cleanup: VIR_FREE(value); =20 - if (vm) - virObjectUnlock(vm); + virDomainObjEndAPI(&vm); return ret; } =20 @@ -1336,8 +1320,7 @@ static int openvzDomainSetVcpusFlags(virDomainPtr dom= , unsigned int nvcpus, ret =3D 0; =20 cleanup: - if (vm) - virObjectUnlock(vm); + virDomainObjEndAPI(&vm); return ret; } =20 @@ -1934,8 +1917,7 @@ openvzDomainInterfaceStats(virDomainPtr dom, ret =3D 0; =20 cleanup: - if (vm) - virObjectUnlock(vm); + virDomainObjEndAPI(&vm); return ret; } =20 @@ -2029,8 +2011,7 @@ openvzDomainUpdateDeviceFlags(virDomainPtr dom, const= char *xml, cleanup: openvzDriverUnlock(driver); virDomainDeviceDefFree(dev); - if (vm) - virObjectUnlock(vm); + virDomainObjEndAPI(&vm); return ret; } =20 @@ -2166,8 +2147,7 @@ openvzDomainMigrateBegin3Params(virDomainPtr domain, VIR_DOMAIN_DEF_FORMAT_SECURE); =20 cleanup: - if (vm) - virObjectUnlock(vm); + virDomainObjEndAPI(&vm); return xml; } =20 @@ -2269,8 +2249,7 @@ openvzDomainMigratePrepare3Params(virConnectPtr dconn, done: VIR_FREE(my_hostname); virURIFree(uri); - if (vm) - virObjectUnlock(vm); + virDomainObjEndAPI(&vm); return ret; } =20 @@ -2323,8 +2302,7 @@ openvzDomainMigratePerform3Params(virDomainPtr domain, cleanup: virCommandFree(cmd); virURIFree(uri); - if (vm) - virObjectUnlock(vm); + virDomainObjEndAPI(&vm); return ret; } =20 @@ -2431,8 +2409,7 @@ openvzDomainMigrateConfirm3Params(virDomainPtr domain, ret =3D 0; =20 cleanup: - if (vm) - virObjectUnlock(vm); + virDomainObjEndAPI(&vm); return ret; } =20 @@ -2450,8 +2427,7 @@ openvzDomainHasManagedSaveImage(virDomainPtr dom, uns= igned int flags) =20 ret =3D 0; =20 - if (obj) - virObjectUnlock(obj); + virDomainObjEndAPI(&obj); return ret; } =20 --=20 2.13.6 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list From nobody Fri Apr 19 16:44:25 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=pass(p=none dis=none) header.from=redhat.com Return-Path: Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by mx.zohomail.com with SMTPS id 1520614242843630.5213375354796; Fri, 9 Mar 2018 08:50:42 -0800 (PST) Received: from smtp.corp.redhat.com (int-mx05.intmail.prod.int.phx2.redhat.com [10.5.11.15]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 7BA154ACA4; Fri, 9 Mar 2018 16:50:41 +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 54E2A5D78E; Fri, 9 Mar 2018 16:50:41 +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 1EEAA4CAA2; Fri, 9 Mar 2018 16:50:41 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.phx2.redhat.com [10.5.11.14]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id w29GmYPT000488 for ; Fri, 9 Mar 2018 11:48:34 -0500 Received: by smtp.corp.redhat.com (Postfix) id 9312818661; Fri, 9 Mar 2018 16:48:34 +0000 (UTC) Received: from unknown54ee7586bd10.attlocal.net.com (ovpn-116-138.phx2.redhat.com [10.3.116.138]) by smtp.corp.redhat.com (Postfix) with ESMTP id 3A63118664 for ; Fri, 9 Mar 2018 16:48:34 +0000 (UTC) From: John Ferlan To: libvir-list@redhat.com Date: Fri, 9 Mar 2018 11:48:05 -0500 Message-Id: <20180309164816.837-10-jferlan@redhat.com> In-Reply-To: <20180309164816.837-1-jferlan@redhat.com> References: <20180309164816.837-1-jferlan@redhat.com> X-Scanned-By: MIMEDefang 2.79 on 10.5.11.14 X-loop: libvir-list@redhat.com Subject: [libvirt] [PATCH 09/20] uml: Create accessors to virDomainObjListFindByUUID 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.15 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.38]); Fri, 09 Mar 2018 16:50:41 +0000 (UTC) X-ZohoMail: RSF_0 Z_629925259 SPT_0 Content-Type: text/plain; charset="utf-8" Rather than repeat code throughout, create and use a couple of accessors in order to lookup by UUID. This will also generate a common error message including the failed uuidstr for lookup rather than just returning nothing in some instances. Signed-off-by: John Ferlan --- src/uml/uml_driver.c | 244 +++++++++++++++--------------------------------= ---- 1 file changed, 70 insertions(+), 174 deletions(-) diff --git a/src/uml/uml_driver.c b/src/uml/uml_driver.c index ab7fa7f27..ea8fca38b 100644 --- a/src/uml/uml_driver.c +++ b/src/uml/uml_driver.c @@ -163,6 +163,39 @@ umlVMDriverUnlock(void) umlDriverUnlock(uml_driver); } =20 + +static virDomainObjPtr +umlDomObjFromDomainLocked(struct uml_driver *driver, + const unsigned char *uuid) +{ + virDomainObjPtr vm; + char uuidstr[VIR_UUID_STRING_BUFLEN]; + + if (!(vm =3D virDomainObjListFindByUUID(driver->domains, uuid))) { + virUUIDFormat(uuid, uuidstr); + + virReportError(VIR_ERR_NO_DOMAIN, + _("no domain with matching uuid '%s'"), uuidstr); + return NULL; + } + + return vm; +} + + +static virDomainObjPtr +umlDomObjFromDomain(struct uml_driver *driver, + const unsigned char *uuid) +{ + virDomainObjPtr vm; + + umlDriverLock(driver); + vm =3D umlDomObjFromDomainLocked(driver, uuid); + umlDriverUnlock(driver); + return vm; +} + + static virNWFilterCallbackDriver umlCallbackDriver =3D { .name =3D "UML", .vmFilterRebuild =3D umlVMFilterRebuild, @@ -1368,20 +1401,14 @@ static virDomainPtr umlDomainLookupByID(virConnectP= tr conn, } =20 static virDomainPtr umlDomainLookupByUUID(virConnectPtr conn, - const unsigned char *uuid) + const unsigned char *uuid) { struct uml_driver *driver =3D (struct uml_driver *)conn->privateData; virDomainObjPtr vm; virDomainPtr dom =3D NULL; =20 - umlDriverLock(driver); - vm =3D virDomainObjListFindByUUID(driver->domains, uuid); - umlDriverUnlock(driver); - - if (!vm) { - virReportError(VIR_ERR_NO_DOMAIN, NULL); - goto cleanup; - } + if (!(vm =3D umlDomObjFromDomain(driver, uuid))) + return NULL; =20 if (virDomainLookupByUUIDEnsureACL(conn, vm->def) < 0) goto cleanup; @@ -1427,13 +1454,8 @@ static int umlDomainIsActive(virDomainPtr dom) virDomainObjPtr obj; int ret =3D -1; =20 - umlDriverLock(driver); - obj =3D virDomainObjListFindByUUID(driver->domains, dom->uuid); - umlDriverUnlock(driver); - if (!obj) { - virReportError(VIR_ERR_NO_DOMAIN, NULL); - goto cleanup; - } + if (!(obj =3D umlDomObjFromDomain(driver, dom->uuid))) + return -1; =20 if (virDomainIsActiveEnsureACL(dom->conn, obj->def) < 0) goto cleanup; @@ -1453,13 +1475,8 @@ static int umlDomainIsPersistent(virDomainPtr dom) virDomainObjPtr obj; int ret =3D -1; =20 - umlDriverLock(driver); - obj =3D virDomainObjListFindByUUID(driver->domains, dom->uuid); - umlDriverUnlock(driver); - if (!obj) { - virReportError(VIR_ERR_NO_DOMAIN, NULL); - goto cleanup; - } + if (!(obj =3D umlDomObjFromDomain(driver, dom->uuid))) + return -1; =20 if (virDomainIsPersistentEnsureACL(dom->conn, obj->def) < 0) goto cleanup; @@ -1478,13 +1495,8 @@ static int umlDomainIsUpdated(virDomainPtr dom) virDomainObjPtr obj; int ret =3D -1; =20 - umlDriverLock(driver); - obj =3D virDomainObjListFindByUUID(driver->domains, dom->uuid); - umlDriverUnlock(driver); - if (!obj) { - virReportError(VIR_ERR_NO_DOMAIN, NULL); - goto cleanup; - } + if (!(obj =3D umlDomObjFromDomain(driver, dom->uuid))) + return -1; =20 if (virDomainIsUpdatedEnsureACL(dom->conn, obj->def) < 0) goto cleanup; @@ -1637,14 +1649,8 @@ static int umlDomainShutdownFlags(virDomainPtr dom, =20 virCheckFlags(0, -1); =20 - umlDriverLock(driver); - vm =3D virDomainObjListFindByUUID(driver->domains, dom->uuid); - umlDriverUnlock(driver); - if (!vm) { - virReportError(VIR_ERR_NO_DOMAIN, - _("no domain with matching id %d"), dom->id); - goto cleanup; - } + if (!(vm =3D umlDomObjFromDomain(driver, dom->uuid))) + return -1; =20 if (virDomainShutdownFlagsEnsureACL(dom->conn, vm->def, flags) < 0) goto cleanup; @@ -1683,12 +1689,8 @@ umlDomainDestroyFlags(virDomainPtr dom, virCheckFlags(0, -1); =20 umlDriverLock(driver); - vm =3D virDomainObjListFindByUUID(driver->domains, dom->uuid); - if (!vm) { - virReportError(VIR_ERR_NO_DOMAIN, - _("no domain with matching id %d"), dom->id); - goto cleanup; - } + if (!(vm =3D umlDomObjFromDomainLocked(driver, dom->uuid))) + return -1; =20 if (virDomainDestroyFlagsEnsureACL(dom->conn, vm->def) < 0) goto cleanup; @@ -1726,14 +1728,8 @@ static char *umlDomainGetOSType(virDomainPtr dom) { virDomainObjPtr vm; char *type =3D NULL; =20 - umlDriverLock(driver); - vm =3D virDomainObjListFindByUUID(driver->domains, dom->uuid); - umlDriverUnlock(driver); - if (!vm) { - virReportError(VIR_ERR_NO_DOMAIN, "%s", - _("no domain with matching uuid")); - goto cleanup; - } + if (!(vm =3D umlDomObjFromDomain(driver, dom->uuid))) + return NULL; =20 if (virDomainGetOSTypeEnsureACL(dom->conn, vm->def) < 0) goto cleanup; @@ -1755,18 +1751,8 @@ umlDomainGetMaxMemory(virDomainPtr dom) virDomainObjPtr vm; unsigned long long ret =3D 0; =20 - umlDriverLock(driver); - vm =3D virDomainObjListFindByUUID(driver->domains, dom->uuid); - umlDriverUnlock(driver); - - if (!vm) { - char uuidstr[VIR_UUID_STRING_BUFLEN]; - - virUUIDFormat(dom->uuid, uuidstr); - virReportError(VIR_ERR_NO_DOMAIN, - _("no domain with matching uuid '%s'"), uuidstr); - goto cleanup; - } + if (!(vm =3D umlDomObjFromDomain(driver, dom->uuid))) + return -1; =20 if (virDomainGetMaxMemoryEnsureACL(dom->conn, vm->def) < 0) goto cleanup; @@ -1785,18 +1771,8 @@ static int umlDomainSetMaxMemory(virDomainPtr dom, u= nsigned long newmax) virDomainObjPtr vm; int ret =3D -1; =20 - umlDriverLock(driver); - vm =3D virDomainObjListFindByUUID(driver->domains, dom->uuid); - umlDriverUnlock(driver); - - if (!vm) { - char uuidstr[VIR_UUID_STRING_BUFLEN]; - - virUUIDFormat(dom->uuid, uuidstr); - virReportError(VIR_ERR_NO_DOMAIN, - _("no domain with matching uuid '%s'"), uuidstr); - goto cleanup; - } + if (!(vm =3D umlDomObjFromDomain(driver, dom->uuid))) + return -1; =20 if (virDomainSetMaxMemoryEnsureACL(dom->conn, vm->def) < 0) goto cleanup; @@ -1822,18 +1798,8 @@ static int umlDomainSetMemory(virDomainPtr dom, unsi= gned long newmem) virDomainObjPtr vm; int ret =3D -1; =20 - umlDriverLock(driver); - vm =3D virDomainObjListFindByUUID(driver->domains, dom->uuid); - umlDriverUnlock(driver); - - if (!vm) { - char uuidstr[VIR_UUID_STRING_BUFLEN]; - - virUUIDFormat(dom->uuid, uuidstr); - virReportError(VIR_ERR_NO_DOMAIN, - _("no domain with matching uuid '%s'"), uuidstr); - goto cleanup; - } + if (!(vm =3D umlDomObjFromDomain(driver, dom->uuid))) + return -1; =20 if (virDomainSetMemoryEnsureACL(dom->conn, vm->def) < 0) goto cleanup; @@ -1866,15 +1832,8 @@ static int umlDomainGetInfo(virDomainPtr dom, virDomainObjPtr vm; int ret =3D -1; =20 - umlDriverLock(driver); - vm =3D virDomainObjListFindByUUID(driver->domains, dom->uuid); - umlDriverUnlock(driver); - - if (!vm) { - virReportError(VIR_ERR_NO_DOMAIN, "%s", - _("no domain with matching uuid")); - goto cleanup; - } + if (!(vm =3D umlDomObjFromDomain(driver, dom->uuid))) + return -1; =20 if (virDomainGetInfoEnsureACL(dom->conn, vm->def) < 0) goto cleanup; @@ -1915,15 +1874,8 @@ umlDomainGetState(virDomainPtr dom, =20 virCheckFlags(0, -1); =20 - umlDriverLock(driver); - vm =3D virDomainObjListFindByUUID(driver->domains, dom->uuid); - umlDriverUnlock(driver); - - if (!vm) { - virReportError(VIR_ERR_NO_DOMAIN, "%s", - _("no domain with matching uuid")); - goto cleanup; - } + if (!(vm =3D umlDomObjFromDomain(driver, dom->uuid))) + return -1; =20 if (virDomainGetStateEnsureACL(dom->conn, vm->def) < 0) goto cleanup; @@ -1948,14 +1900,8 @@ static char *umlDomainGetXMLDesc(virDomainPtr dom, /* Flags checked by virDomainDefFormat */ =20 umlDriverLock(driver); - vm =3D virDomainObjListFindByUUID(driver->domains, dom->uuid); - umlDriverUnlock(driver); - - if (!vm) { - virReportError(VIR_ERR_NO_DOMAIN, "%s", - _("no domain with matching uuid")); + if (!(vm =3D umlDomObjFromDomainLocked(driver, dom->uuid))) goto cleanup; - } =20 if (virDomainGetXMLDescEnsureACL(dom->conn, vm->def, flags) < 0) goto cleanup; @@ -2015,13 +1961,8 @@ static int umlDomainCreateWithFlags(virDomainPtr dom= , unsigned int flags) =20 virNWFilterReadLockFilterUpdates(); umlDriverLock(driver); - vm =3D virDomainObjListFindByUUID(driver->domains, dom->uuid); - - if (!vm) { - virReportError(VIR_ERR_NO_DOMAIN, "%s", - _("no domain with matching uuid")); + if (!(vm =3D umlDomObjFromDomainLocked(driver, dom->uuid))) goto cleanup; - } =20 if (virDomainCreateWithFlagsEnsureACL(dom->conn, vm->def) < 0) goto cleanup; @@ -2115,12 +2056,8 @@ static int umlDomainUndefineFlags(virDomainPtr dom, virCheckFlags(0, -1); =20 umlDriverLock(driver); - vm =3D virDomainObjListFindByUUID(driver->domains, dom->uuid); - if (!vm) { - virReportError(VIR_ERR_NO_DOMAIN, "%s", - _("no domain with matching uuid")); + if (!(vm =3D umlDomObjFromDomainLocked(driver, dom->uuid))) goto cleanup; - } =20 if (virDomainUndefineFlagsEnsureACL(dom->conn, vm->def) < 0) goto cleanup; @@ -2213,14 +2150,8 @@ static int umlDomainAttachDevice(virDomainPtr dom, c= onst char *xml) =20 umlDriverLock(driver); =20 - vm =3D virDomainObjListFindByUUID(driver->domains, dom->uuid); - if (!vm) { - char uuidstr[VIR_UUID_STRING_BUFLEN]; - virUUIDFormat(dom->uuid, uuidstr); - virReportError(VIR_ERR_NO_DOMAIN, - _("no domain with matching uuid '%s'"), uuidstr); + if (!(vm =3D umlDomObjFromDomainLocked(driver, dom->uuid))) goto cleanup; - } =20 if (virDomainAttachDeviceEnsureACL(dom->conn, vm->def) < 0) goto cleanup; @@ -2333,14 +2264,8 @@ static int umlDomainDetachDevice(virDomainPtr dom, c= onst char *xml) int ret =3D -1; =20 umlDriverLock(driver); - vm =3D virDomainObjListFindByUUID(driver->domains, dom->uuid); - if (!vm) { - char uuidstr[VIR_UUID_STRING_BUFLEN]; - virUUIDFormat(dom->uuid, uuidstr); - virReportError(VIR_ERR_NO_DOMAIN, - _("no domain with matching uuid '%s'"), uuidstr); + if (!(vm =3D umlDomObjFromDomainLocked(driver, dom->uuid))) goto cleanup; - } =20 if (virDomainDetachDeviceEnsureACL(dom->conn, vm->def) < 0) goto cleanup; @@ -2403,13 +2328,8 @@ static int umlDomainGetAutostart(virDomainPtr dom, int ret =3D -1; =20 umlDriverLock(driver); - vm =3D virDomainObjListFindByUUID(driver->domains, dom->uuid); - - if (!vm) { - virReportError(VIR_ERR_NO_DOMAIN, "%s", - _("no domain with matching uuid")); + if (!(vm =3D umlDomObjFromDomainLocked(driver, dom->uuid))) goto cleanup; - } =20 if (virDomainGetAutostartEnsureACL(dom->conn, vm->def) < 0) goto cleanup; @@ -2433,13 +2353,8 @@ static int umlDomainSetAutostart(virDomainPtr dom, int ret =3D -1; =20 umlDriverLock(driver); - vm =3D virDomainObjListFindByUUID(driver->domains, dom->uuid); - - if (!vm) { - virReportError(VIR_ERR_NO_DOMAIN, "%s", - _("no domain with matching uuid")); + if (!(vm =3D umlDomObjFromDomainLocked(driver, dom->uuid))) goto cleanup; - } =20 if (virDomainSetAutostartEnsureACL(dom->conn, vm->def) < 0) goto cleanup; @@ -2509,15 +2424,8 @@ umlDomainBlockPeek(virDomainPtr dom, =20 virCheckFlags(0, -1); =20 - umlDriverLock(driver); - vm =3D virDomainObjListFindByUUID(driver->domains, dom->uuid); - umlDriverUnlock(driver); - - if (!vm) { - virReportError(VIR_ERR_NO_DOMAIN, "%s", - _("no domain with matching uuid")); - goto cleanup; - } + if (!(vm =3D umlDomObjFromDomain(driver, dom->uuid))) + return -1; =20 if (virDomainBlockPeekEnsureACL(dom->conn, vm->def) < 0) goto cleanup; @@ -2573,7 +2481,6 @@ umlDomainOpenConsole(virDomainPtr dom, { struct uml_driver *driver =3D dom->conn->privateData; virDomainObjPtr vm =3D NULL; - char uuidstr[VIR_UUID_STRING_BUFLEN]; int ret =3D -1; virDomainChrDefPtr chr =3D NULL; size_t i; @@ -2581,13 +2488,8 @@ umlDomainOpenConsole(virDomainPtr dom, virCheckFlags(0, -1); =20 umlDriverLock(driver); - virUUIDFormat(dom->uuid, uuidstr); - vm =3D virDomainObjListFindByUUID(driver->domains, dom->uuid); - if (!vm) { - virReportError(VIR_ERR_NO_DOMAIN, - _("no domain with matching uuid '%s'"), uuidstr); + if (!(vm =3D umlDomObjFromDomainLocked(driver, dom->uuid))) goto cleanup; - } =20 if (virDomainOpenConsoleEnsureACL(dom->conn, vm->def) < 0) goto cleanup; @@ -2924,14 +2826,8 @@ umlDomainHasManagedSaveImage(virDomainPtr dom, unsig= ned int flags) =20 virCheckFlags(0, -1); =20 - umlDriverLock(driver); - vm =3D virDomainObjListFindByUUID(driver->domains, dom->uuid); - umlDriverUnlock(driver); - - if (!vm) { - virReportError(VIR_ERR_NO_DOMAIN, NULL); - goto cleanup; - } + if (!(vm =3D umlDomObjFromDomain(driver, dom->uuid))) + return -1; =20 if (virDomainHasManagedSaveImageEnsureACL(dom->conn, vm->def) < 0) goto cleanup; --=20 2.13.6 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list From nobody Fri Apr 19 16:44:25 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=pass(p=none dis=none) header.from=redhat.com Return-Path: Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by mx.zohomail.com with SMTPS id 1520614304552317.1171126113128; Fri, 9 Mar 2018 08:51:44 -0800 (PST) Received: from smtp.corp.redhat.com (int-mx05.intmail.prod.int.phx2.redhat.com [10.5.11.15]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 5914F85550; Fri, 9 Mar 2018 16:51:43 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.20]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 31CBA5D78E; Fri, 9 Mar 2018 16:51:43 +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 E15FD181BA01; Fri, 9 Mar 2018 16:51:42 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.phx2.redhat.com [10.5.11.14]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id w29GmZvl000497 for ; Fri, 9 Mar 2018 11:48:35 -0500 Received: by smtp.corp.redhat.com (Postfix) id 1255418661; Fri, 9 Mar 2018 16:48:35 +0000 (UTC) Received: from unknown54ee7586bd10.attlocal.net.com (ovpn-116-138.phx2.redhat.com [10.3.116.138]) by smtp.corp.redhat.com (Postfix) with ESMTP id C2F8318A72 for ; Fri, 9 Mar 2018 16:48:34 +0000 (UTC) From: John Ferlan To: libvir-list@redhat.com Date: Fri, 9 Mar 2018 11:48:06 -0500 Message-Id: <20180309164816.837-11-jferlan@redhat.com> In-Reply-To: <20180309164816.837-1-jferlan@redhat.com> References: <20180309164816.837-1-jferlan@redhat.com> X-Scanned-By: MIMEDefang 2.79 on 10.5.11.14 X-loop: libvir-list@redhat.com Subject: [libvirt] [PATCH 10/20] uml: Add more specific error message on failed FindBy call 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.15 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.28]); Fri, 09 Mar 2018 16:51:43 +0000 (UTC) X-ZohoMail: RSF_0 Z_629925259 SPT_0 Content-Type: text/plain; charset="utf-8" Rather than an empty failed to find, let's provide a bit more knowledge about what we failed to find by using the name string or the id value. Signed-off-by: John Ferlan --- src/uml/uml_driver.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/uml/uml_driver.c b/src/uml/uml_driver.c index ea8fca38b..d10a9ba62 100644 --- a/src/uml/uml_driver.c +++ b/src/uml/uml_driver.c @@ -1385,7 +1385,8 @@ static virDomainPtr umlDomainLookupByID(virConnectPtr= conn, umlDriverUnlock(driver); =20 if (!vm) { - virReportError(VIR_ERR_NO_DOMAIN, NULL); + virReportError(VIR_ERR_NO_DOMAIN, + _("no domain with matching id '%d'"), id); goto cleanup; } =20 @@ -1433,7 +1434,8 @@ static virDomainPtr umlDomainLookupByName(virConnectP= tr conn, umlDriverUnlock(driver); =20 if (!vm) { - virReportError(VIR_ERR_NO_DOMAIN, NULL); + virReportError(VIR_ERR_NO_DOMAIN, + _("no domain with matching name '%s'"), name); goto cleanup; } =20 --=20 2.13.6 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list From nobody Fri Apr 19 16:44:25 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=pass(p=none dis=none) header.from=redhat.com Return-Path: Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by mx.zohomail.com with SMTPS id 1520614261071299.1227340088627; Fri, 9 Mar 2018 08:51:01 -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 D8EDD61B8F; Fri, 9 Mar 2018 16:50:59 +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 9BF6318A72; Fri, 9 Mar 2018 16:50:59 +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 681604CAAB; Fri, 9 Mar 2018 16:50:59 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.phx2.redhat.com [10.5.11.14]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id w29GmZg4000505 for ; Fri, 9 Mar 2018 11:48:35 -0500 Received: by smtp.corp.redhat.com (Postfix) id B796718661; Fri, 9 Mar 2018 16:48:35 +0000 (UTC) Received: from unknown54ee7586bd10.attlocal.net.com (ovpn-116-138.phx2.redhat.com [10.3.116.138]) by smtp.corp.redhat.com (Postfix) with ESMTP id 7615E18A75 for ; Fri, 9 Mar 2018 16:48:35 +0000 (UTC) From: John Ferlan To: libvir-list@redhat.com Date: Fri, 9 Mar 2018 11:48:07 -0500 Message-Id: <20180309164816.837-12-jferlan@redhat.com> In-Reply-To: <20180309164816.837-1-jferlan@redhat.com> References: <20180309164816.837-1-jferlan@redhat.com> X-Scanned-By: MIMEDefang 2.79 on 10.5.11.14 X-loop: libvir-list@redhat.com Subject: [libvirt] [PATCH 11/20] uml: Use virDomainObjListFindBy{UUID|ID}Ref 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.39]); Fri, 09 Mar 2018 16:51:00 +0000 (UTC) X-ZohoMail: RSF_0 Z_629925259 SPT_0 Content-Type: text/plain; charset="utf-8" For umlDomObjFromDomainLocked and umlDomainLookupByID let's return a locked and referenced @vm object so that callers can then use the common and more consistent virDomainObjEndAPI in order to handle cleanup rather than needing to know that the returned object is locked and calling virObjectUnlock. The LookupByName already returns the ref counted and locked object, so this will make things more consistent. Signed-off-by: John Ferlan --- src/uml/uml_driver.c | 81 ++++++++++++++++++------------------------------= ---- 1 file changed, 28 insertions(+), 53 deletions(-) diff --git a/src/uml/uml_driver.c b/src/uml/uml_driver.c index d10a9ba62..41c607e66 100644 --- a/src/uml/uml_driver.c +++ b/src/uml/uml_driver.c @@ -171,7 +171,7 @@ umlDomObjFromDomainLocked(struct uml_driver *driver, virDomainObjPtr vm; char uuidstr[VIR_UUID_STRING_BUFLEN]; =20 - if (!(vm =3D virDomainObjListFindByUUID(driver->domains, uuid))) { + if (!(vm =3D virDomainObjListFindByUUIDRef(driver->domains, uuid))) { virUUIDFormat(uuid, uuidstr); =20 virReportError(VIR_ERR_NO_DOMAIN, @@ -767,8 +767,7 @@ static int umlProcessAutoDestroyDom(void *payload, return 0; } =20 - if (!(dom =3D virDomainObjListFindByUUID(data->driver->domains, - uuid))) { + if (!(dom =3D virDomainObjListFindByUUIDRef(data->driver->domains, uui= d))) { VIR_DEBUG("No domain object to kill"); return 0; } @@ -780,11 +779,10 @@ static int umlProcessAutoDestroyDom(void *payload, VIR_DOMAIN_EVENT_STOPPED, VIR_DOMAIN_EVENT_STOPPED_DESTROYED); =20 - if (dom && !dom->persistent) + if (!dom->persistent) virDomainObjListRemove(data->driver->domains, dom); =20 - if (dom) - virObjectUnlock(dom); + virDomainObjEndAPI(&dom); if (event) umlDomainEventQueue(data->driver, event); virHashRemoveEntry(data->driver->autodestroy, uuidstr); @@ -1381,7 +1379,7 @@ static virDomainPtr umlDomainLookupByID(virConnectPtr= conn, virDomainPtr dom =3D NULL; =20 umlDriverLock(driver); - vm =3D virDomainObjListFindByID(driver->domains, id); + vm =3D virDomainObjListFindByIDRef(driver->domains, id); umlDriverUnlock(driver); =20 if (!vm) { @@ -1396,8 +1394,7 @@ static virDomainPtr umlDomainLookupByID(virConnectPtr= conn, dom =3D virGetDomain(conn, vm->def->name, vm->def->uuid, vm->def->id); =20 cleanup: - if (vm) - virObjectUnlock(vm); + virDomainObjEndAPI(&vm); return dom; } =20 @@ -1417,8 +1414,7 @@ static virDomainPtr umlDomainLookupByUUID(virConnectP= tr conn, dom =3D virGetDomain(conn, vm->def->name, vm->def->uuid, vm->def->id); =20 cleanup: - if (vm) - virObjectUnlock(vm); + virDomainObjEndAPI(&vm); return dom; } =20 @@ -1465,8 +1461,7 @@ static int umlDomainIsActive(virDomainPtr dom) ret =3D virDomainObjIsActive(obj); =20 cleanup: - if (obj) - virObjectUnlock(obj); + virDomainObjEndAPI(&obj); return ret; } =20 @@ -1486,8 +1481,7 @@ static int umlDomainIsPersistent(virDomainPtr dom) ret =3D obj->persistent; =20 cleanup: - if (obj) - virObjectUnlock(obj); + virDomainObjEndAPI(&obj); return ret; } =20 @@ -1506,8 +1500,7 @@ static int umlDomainIsUpdated(virDomainPtr dom) ret =3D obj->updated; =20 cleanup: - if (obj) - virObjectUnlock(obj); + virDomainObjEndAPI(&obj); return ret; } =20 @@ -1668,8 +1661,7 @@ static int umlDomainShutdownFlags(virDomainPtr dom, =20 cleanup: VIR_FREE(info); - if (vm) - virObjectUnlock(vm); + virDomainObjEndAPI(&vm); return ret; } =20 @@ -1710,8 +1702,7 @@ umlDomainDestroyFlags(virDomainPtr dom, ret =3D 0; =20 cleanup: - if (vm) - virObjectUnlock(vm); + virDomainObjEndAPI(&vm); if (event) umlDomainEventQueue(driver, event); umlDriverUnlock(driver); @@ -1740,8 +1731,7 @@ static char *umlDomainGetOSType(virDomainPtr dom) { goto cleanup; =20 cleanup: - if (vm) - virObjectUnlock(vm); + virDomainObjEndAPI(&vm); return type; } =20 @@ -1762,8 +1752,7 @@ umlDomainGetMaxMemory(virDomainPtr dom) ret =3D virDomainDefGetMemoryTotal(vm->def); =20 cleanup: - if (vm) - virObjectUnlock(vm); + virDomainObjEndAPI(&vm); return ret; } =20 @@ -1789,8 +1778,7 @@ static int umlDomainSetMaxMemory(virDomainPtr dom, un= signed long newmax) ret =3D 0; =20 cleanup: - if (vm) - virObjectUnlock(vm); + virDomainObjEndAPI(&vm); return ret; } =20 @@ -1822,8 +1810,7 @@ static int umlDomainSetMemory(virDomainPtr dom, unsig= ned long newmem) ret =3D 0; =20 cleanup: - if (vm) - virObjectUnlock(vm); + virDomainObjEndAPI(&vm); return ret; } =20 @@ -1858,8 +1845,7 @@ static int umlDomainGetInfo(virDomainPtr dom, ret =3D 0; =20 cleanup: - if (vm) - virObjectUnlock(vm); + virDomainObjEndAPI(&vm); return ret; } =20 @@ -1886,8 +1872,7 @@ umlDomainGetState(virDomainPtr dom, ret =3D 0; =20 cleanup: - if (vm) - virObjectUnlock(vm); + virDomainObjEndAPI(&vm); return ret; } =20 @@ -1913,8 +1898,7 @@ static char *umlDomainGetXMLDesc(virDomainPtr dom, virDomainDefFormatConvertXMLFlags(flags)); =20 cleanup: - if (vm) - virObjectUnlock(vm); + virDomainObjEndAPI(&vm); return ret; } =20 @@ -1978,8 +1962,7 @@ static int umlDomainCreateWithFlags(virDomainPtr dom,= unsigned int flags) VIR_DOMAIN_EVENT_STARTED_BOOTED); =20 cleanup: - if (vm) - virObjectUnlock(vm); + virDomainObjEndAPI(&vm); if (event) umlDomainEventQueue(driver, event); umlDriverUnlock(driver); @@ -2083,8 +2066,7 @@ static int umlDomainUndefineFlags(virDomainPtr dom, ret =3D 0; =20 cleanup: - if (vm) - virObjectUnlock(vm); + virDomainObjEndAPI(&vm); umlDriverUnlock(driver); return ret; } @@ -2190,8 +2172,7 @@ static int umlDomainAttachDevice(virDomainPtr dom, co= nst char *xml) cleanup: =20 virDomainDeviceDefFree(dev); - if (vm) - virObjectUnlock(vm); + virDomainObjEndAPI(&vm); umlDriverUnlock(driver); return ret; } @@ -2298,8 +2279,7 @@ static int umlDomainDetachDevice(virDomainPtr dom, co= nst char *xml) =20 cleanup: virDomainDeviceDefFree(dev); - if (vm) - virObjectUnlock(vm); + virDomainObjEndAPI(&vm); umlDriverUnlock(driver); return ret; } @@ -2340,8 +2320,7 @@ static int umlDomainGetAutostart(virDomainPtr dom, ret =3D 0; =20 cleanup: - if (vm) - virObjectUnlock(vm); + virDomainObjEndAPI(&vm); umlDriverUnlock(driver); return ret; } @@ -2405,8 +2384,7 @@ static int umlDomainSetAutostart(virDomainPtr dom, cleanup: VIR_FREE(configFile); VIR_FREE(autostartLink); - if (vm) - virObjectUnlock(vm); + virDomainObjEndAPI(&vm); umlDriverUnlock(driver); return ret; } @@ -2469,8 +2447,7 @@ umlDomainBlockPeek(virDomainPtr dom, =20 cleanup: VIR_FORCE_CLOSE(fd); - if (vm) - virObjectUnlock(vm); + virDomainObjEndAPI(&vm); return ret; } =20 @@ -2537,8 +2514,7 @@ umlDomainOpenConsole(virDomainPtr dom, =20 ret =3D 0; cleanup: - if (vm) - virObjectUnlock(vm); + virDomainObjEndAPI(&vm); umlDriverUnlock(driver); return ret; } @@ -2837,8 +2813,7 @@ umlDomainHasManagedSaveImage(virDomainPtr dom, unsign= ed int flags) ret =3D 0; =20 cleanup: - if (vm) - virObjectUnlock(vm); + virDomainObjEndAPI(&vm); return ret; } =20 --=20 2.13.6 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list From nobody Fri Apr 19 16:44:25 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=pass(p=none dis=none) header.from=redhat.com Return-Path: Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by mx.zohomail.com with SMTPS id 1520614264546633.8576119348223; Fri, 9 Mar 2018 08:51:04 -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 133F4C058EC1; Fri, 9 Mar 2018 16:51:03 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.20]) by smtp.corp.redhat.com (Postfix) with ESMTPS id CC44A18B84; Fri, 9 Mar 2018 16:51:02 +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 87075181B9FE; Fri, 9 Mar 2018 16:51:02 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.phx2.redhat.com [10.5.11.14]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id w29Gmadk000523 for ; Fri, 9 Mar 2018 11:48:36 -0500 Received: by smtp.corp.redhat.com (Postfix) id 8165C18661; Fri, 9 Mar 2018 16:48:36 +0000 (UTC) Received: from unknown54ee7586bd10.attlocal.net.com (ovpn-116-138.phx2.redhat.com [10.3.116.138]) by smtp.corp.redhat.com (Postfix) with ESMTP id 4183018A51 for ; Fri, 9 Mar 2018 16:48:35 +0000 (UTC) From: John Ferlan To: libvir-list@redhat.com Date: Fri, 9 Mar 2018 11:48:08 -0500 Message-Id: <20180309164816.837-13-jferlan@redhat.com> In-Reply-To: <20180309164816.837-1-jferlan@redhat.com> References: <20180309164816.837-1-jferlan@redhat.com> X-Scanned-By: MIMEDefang 2.79 on 10.5.11.14 X-loop: libvir-list@redhat.com Subject: [libvirt] [PATCH 12/20] vmware: Create accessors to virDomainObjListFindByUUID 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.32]); Fri, 09 Mar 2018 16:51:03 +0000 (UTC) X-ZohoMail: RSF_0 Z_629925259 SPT_0 Content-Type: text/plain; charset="utf-8" Rather than repeat code throughout, create and use a couple of accessors in order to lookup by UUID. Signed-off-by: John Ferlan --- src/vmware/vmware_driver.c | 180 +++++++++++++++--------------------------= ---- 1 file changed, 61 insertions(+), 119 deletions(-) diff --git a/src/vmware/vmware_driver.c b/src/vmware/vmware_driver.c index 8b487c4a7..121751e27 100644 --- a/src/vmware/vmware_driver.c +++ b/src/vmware/vmware_driver.c @@ -59,6 +59,39 @@ vmwareDriverUnlock(struct vmware_driver *driver) virMutexUnlock(&driver->lock); } =20 + +static virDomainObjPtr +vmwareDomObjFromDomainLocked(struct vmware_driver *driver, + const unsigned char *uuid) +{ + virDomainObjPtr vm; + char uuidstr[VIR_UUID_STRING_BUFLEN]; + + if (!(vm =3D virDomainObjListFindByUUID(driver->domains, uuid))) { + virUUIDFormat(uuid, uuidstr); + + virReportError(VIR_ERR_NO_DOMAIN, + _("no domain with matching uuid '%s'"), uuidstr); + return NULL; + } + + return vm; +} + + +static virDomainObjPtr +vmwareDomObjFromDomain(struct vmware_driver *driver, + const unsigned char *uuid) +{ + virDomainObjPtr vm; + + vmwareDriverLock(driver); + vm =3D vmwareDomObjFromDomainLocked(driver, uuid); + vmwareDriverUnlock(driver); + return vm; +} + + static void * vmwareDataAllocFunc(void *opaque ATTRIBUTE_UNUSED) { @@ -460,13 +493,8 @@ vmwareDomainShutdownFlags(virDomainPtr dom, =20 vmwareDriverLock(driver); =20 - vm =3D virDomainObjListFindByUUID(driver->domains, dom->uuid); - - if (!vm) { - virReportError(VIR_ERR_NO_DOMAIN, "%s", - _("no domain with matching uuid")); + if (!(vm =3D vmwareDomObjFromDomainLocked(driver, dom->uuid))) goto cleanup; - } =20 if (vmwareUpdateVMStatus(driver, vm) < 0) goto cleanup; @@ -531,15 +559,8 @@ vmwareDomainSuspend(virDomainPtr dom) return ret; } =20 - vmwareDriverLock(driver); - vm =3D virDomainObjListFindByUUID(driver->domains, dom->uuid); - vmwareDriverUnlock(driver); - - if (!vm) { - virReportError(VIR_ERR_NO_DOMAIN, "%s", - _("no domain with matching uuid")); - goto cleanup; - } + if (!(vm =3D vmwareDomObjFromDomain(driver, dom->uuid))) + return -1; =20 vmwareSetSentinal(cmd, vmwareDriverTypeToString(driver->type)); vmwareSetSentinal(cmd, ((vmwareDomainPtr) vm->privateData)->vmxPath); @@ -580,15 +601,8 @@ vmwareDomainResume(virDomainPtr dom) return ret; } =20 - vmwareDriverLock(driver); - vm =3D virDomainObjListFindByUUID(driver->domains, dom->uuid); - vmwareDriverUnlock(driver); - - if (!vm) { - virReportError(VIR_ERR_NO_DOMAIN, "%s", - _("no domain with matching uuid")); - goto cleanup; - } + if (!(vm =3D vmwareDomObjFromDomain(driver, dom->uuid))) + return -1; =20 vmwareSetSentinal(cmd, vmwareDriverTypeToString(driver->type)); vmwareSetSentinal(cmd, ((vmwareDomainPtr) vm->privateData)->vmxPath); @@ -624,15 +638,8 @@ vmwareDomainReboot(virDomainPtr dom, unsigned int flag= s) =20 virCheckFlags(0, -1); =20 - vmwareDriverLock(driver); - vm =3D virDomainObjListFindByUUID(driver->domains, dom->uuid); - vmwareDriverUnlock(driver); - - if (!vm) { - virReportError(VIR_ERR_NO_DOMAIN, "%s", - _("no domain with matching uuid")); - goto cleanup; - } + if (!(vm =3D vmwareDomObjFromDomain(driver, dom->uuid))) + return -1; =20 vmxPath =3D ((vmwareDomainPtr) vm->privateData)->vmxPath; vmwareSetSentinal(cmd, vmwareDriverTypeToString(driver->type)); @@ -750,14 +757,8 @@ vmwareDomainCreateWithFlags(virDomainPtr dom, virCheckFlags(0, -1); =20 vmwareDriverLock(driver); - vm =3D virDomainObjListFindByUUID(driver->domains, dom->uuid); - if (!vm) { - char uuidstr[VIR_UUID_STRING_BUFLEN]; - virUUIDFormat(dom->uuid, uuidstr); - virReportError(VIR_ERR_NO_DOMAIN, - _("No domain with matching uuid '%s'"), uuidstr); + if (!(vm =3D vmwareDomObjFromDomainLocked(driver, dom->uuid))) goto cleanup; - } =20 if (vmwareUpdateVMStatus(driver, vm) < 0) goto cleanup; @@ -794,16 +795,8 @@ vmwareDomainUndefineFlags(virDomainPtr dom, virCheckFlags(0, -1); =20 vmwareDriverLock(driver); - vm =3D virDomainObjListFindByUUID(driver->domains, dom->uuid); - - if (!vm) { - char uuidstr[VIR_UUID_STRING_BUFLEN]; - - virUUIDFormat(dom->uuid, uuidstr); - virReportError(VIR_ERR_NO_DOMAIN, - _("no domain with matching uuid '%s'"), uuidstr); + if (!(vm =3D vmwareDomObjFromDomainLocked(driver, dom->uuid))) goto cleanup; - } =20 if (!vm->persistent) { virReportError(VIR_ERR_OPERATION_INVALID, @@ -867,18 +860,11 @@ vmwareDomainGetOSType(virDomainPtr dom) virDomainObjPtr vm; char *ret =3D NULL; =20 - vmwareDriverLock(driver); - vm =3D virDomainObjListFindByUUID(driver->domains, dom->uuid); - vmwareDriverUnlock(driver); - - if (!vm) { - virReportError(VIR_ERR_NO_DOMAIN, NULL); - goto cleanup; - } + if (!(vm =3D vmwareDomObjFromDomain(driver, dom->uuid))) + return NULL; =20 ignore_value(VIR_STRDUP(ret, virDomainOSTypeToString(vm->def->os.type)= )); =20 - cleanup: if (vm) virObjectUnlock(vm); return ret; @@ -892,18 +878,11 @@ vmwareDomainLookupByUUID(virConnectPtr conn, const un= signed char *uuid) virDomainObjPtr vm; virDomainPtr dom =3D NULL; =20 - vmwareDriverLock(driver); - vm =3D virDomainObjListFindByUUID(driver->domains, uuid); - vmwareDriverUnlock(driver); - - if (!vm) { - virReportError(VIR_ERR_NO_DOMAIN, NULL); - goto cleanup; - } + if (!(vm =3D vmwareDomObjFromDomain(driver, uuid))) + return NULL; =20 dom =3D virGetDomain(conn, vm->def->name, vm->def->uuid, vm->def->id); =20 - cleanup: if (vm) virObjectUnlock(vm); return dom; @@ -940,16 +919,11 @@ vmwareDomainIsActive(virDomainPtr dom) virDomainObjPtr obj; int ret =3D -1; =20 - vmwareDriverLock(driver); - obj =3D virDomainObjListFindByUUID(driver->domains, dom->uuid); - vmwareDriverUnlock(driver); - if (!obj) { - virReportError(VIR_ERR_NO_DOMAIN, NULL); - goto cleanup; - } + if (!(obj =3D vmwareDomObjFromDomain(driver, dom->uuid))) + return -1; + ret =3D virDomainObjIsActive(obj); =20 - cleanup: if (obj) virObjectUnlock(obj); return ret; @@ -963,16 +937,11 @@ vmwareDomainIsPersistent(virDomainPtr dom) virDomainObjPtr obj; int ret =3D -1; =20 - vmwareDriverLock(driver); - obj =3D virDomainObjListFindByUUID(driver->domains, dom->uuid); - vmwareDriverUnlock(driver); - if (!obj) { - virReportError(VIR_ERR_NO_DOMAIN, NULL); - goto cleanup; - } + if (!(obj =3D vmwareDomObjFromDomain(driver, dom->uuid))) + return -1; + ret =3D obj->persistent; =20 - cleanup: if (obj) virObjectUnlock(obj); return ret; @@ -988,20 +957,12 @@ vmwareDomainGetXMLDesc(virDomainPtr dom, unsigned int= flags) =20 /* Flags checked by virDomainDefFormat */ =20 - vmwareDriverLock(driver); - vm =3D virDomainObjListFindByUUID(driver->domains, dom->uuid); - vmwareDriverUnlock(driver); - - if (!vm) { - virReportError(VIR_ERR_NO_DOMAIN, "%s", - _("no domain with matching uuid")); - goto cleanup; - } + if (!(vm =3D vmwareDomObjFromDomain(driver, dom->uuid))) + return NULL; =20 ret =3D virDomainDefFormat(vm->def, driver->caps, virDomainDefFormatConvertXMLFlags(flags)); =20 - cleanup: if (vm) virObjectUnlock(vm); return ret; @@ -1121,15 +1082,8 @@ vmwareDomainGetInfo(virDomainPtr dom, virDomainInfoP= tr info) virDomainObjPtr vm; int ret =3D -1; =20 - vmwareDriverLock(driver); - vm =3D virDomainObjListFindByUUID(driver->domains, dom->uuid); - vmwareDriverUnlock(driver); - - if (!vm) { - virReportError(VIR_ERR_NO_DOMAIN, "%s", - _("no domain with matching uuid")); - goto cleanup; - } + if (!(vm =3D vmwareDomObjFromDomain(driver, dom->uuid))) + return -1; =20 if (vmwareUpdateVMStatus(driver, vm) < 0) goto cleanup; @@ -1159,15 +1113,8 @@ vmwareDomainGetState(virDomainPtr dom, =20 virCheckFlags(0, -1); =20 - vmwareDriverLock(driver); - vm =3D virDomainObjListFindByUUID(driver->domains, dom->uuid); - vmwareDriverUnlock(driver); - - if (!vm) { - virReportError(VIR_ERR_NO_DOMAIN, "%s", - _("no domain with matching uuid")); - goto cleanup; - } + if (!(vm =3D vmwareDomObjFromDomain(driver, dom->uuid))) + return -1; =20 if (vmwareUpdateVMStatus(driver, vm) < 0) goto cleanup; @@ -1214,16 +1161,11 @@ vmwareDomainHasManagedSaveImage(virDomainPtr dom, u= nsigned int flags) =20 virCheckFlags(0, -1); =20 - vmwareDriverLock(driver); - obj =3D virDomainObjListFindByUUID(driver->domains, dom->uuid); - vmwareDriverUnlock(driver); - if (!obj) { - virReportError(VIR_ERR_NO_DOMAIN, NULL); - goto cleanup; - } + if (!(obj =3D vmwareDomObjFromDomain(driver, dom->uuid))) + return -1; + ret =3D 0; =20 - cleanup: if (obj) virObjectUnlock(obj); return ret; --=20 2.13.6 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list From nobody Fri Apr 19 16:44:25 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=pass(p=none dis=none) header.from=redhat.com Return-Path: Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by mx.zohomail.com with SMTPS id 1520614245961994.8979055626126; Fri, 9 Mar 2018 08:50:45 -0800 (PST) Received: from smtp.corp.redhat.com (int-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.11]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id C4ABE3DE42; Fri, 9 Mar 2018 16:50:44 +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 8F3B1620AE; Fri, 9 Mar 2018 16:50:44 +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 5504C4CAA5; Fri, 9 Mar 2018 16:50:44 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.phx2.redhat.com [10.5.11.14]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id w29Gmf1f000557 for ; Fri, 9 Mar 2018 11:48:41 -0500 Received: by smtp.corp.redhat.com (Postfix) id 3DBE018661; Fri, 9 Mar 2018 16:48:41 +0000 (UTC) Received: from unknown54ee7586bd10.attlocal.net.com (ovpn-116-138.phx2.redhat.com [10.3.116.138]) by smtp.corp.redhat.com (Postfix) with ESMTP id A16725DD82 for ; Fri, 9 Mar 2018 16:48:36 +0000 (UTC) From: John Ferlan To: libvir-list@redhat.com Date: Fri, 9 Mar 2018 11:48:09 -0500 Message-Id: <20180309164816.837-14-jferlan@redhat.com> In-Reply-To: <20180309164816.837-1-jferlan@redhat.com> References: <20180309164816.837-1-jferlan@redhat.com> X-Scanned-By: MIMEDefang 2.79 on 10.5.11.14 X-loop: libvir-list@redhat.com Subject: [libvirt] [PATCH 13/20] vmware: Add more descriptive error message on Find failure 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.11 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.29]); Fri, 09 Mar 2018 16:50:45 +0000 (UTC) X-ZohoMail: RSF_0 Z_629925259 SPT_0 Content-Type: text/plain; charset="utf-8" If vmwareDomainLookupByID or vmwareDomainLookupByName fails to find a vm, let's be a bit more descriptive by providing the failing id or name in the error message. Signed-off-by: John Ferlan --- src/vmware/vmware_driver.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/vmware/vmware_driver.c b/src/vmware/vmware_driver.c index 121751e27..9cd0bc438 100644 --- a/src/vmware/vmware_driver.c +++ b/src/vmware/vmware_driver.c @@ -841,7 +841,8 @@ vmwareDomainLookupByID(virConnectPtr conn, int id) vmwareDriverUnlock(driver); =20 if (!vm) { - virReportError(VIR_ERR_NO_DOMAIN, NULL); + virReportError(VIR_ERR_NO_DOMAIN, + _("no domain with matching id '%d'"), id); goto cleanup; } =20 @@ -900,7 +901,8 @@ vmwareDomainLookupByName(virConnectPtr conn, const char= *name) vmwareDriverUnlock(driver); =20 if (!vm) { - virReportError(VIR_ERR_NO_DOMAIN, NULL); + virReportError(VIR_ERR_NO_DOMAIN, + _("no domain with matching name '%s'"), name); goto cleanup; } =20 --=20 2.13.6 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list From nobody Fri Apr 19 16:44:25 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=pass(p=none dis=none) header.from=redhat.com Return-Path: Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by mx.zohomail.com with SMTPS id 1520614269016236.6816527933562; Fri, 9 Mar 2018 08:51:09 -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 CF31380464; Fri, 9 Mar 2018 16:51:06 +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 9158E18A49; Fri, 9 Mar 2018 16:51:06 +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 5A85C4CAA0; Fri, 9 Mar 2018 16:51:06 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.phx2.redhat.com [10.5.11.14]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id w29GmgFM000565 for ; Fri, 9 Mar 2018 11:48:42 -0500 Received: by smtp.corp.redhat.com (Postfix) id 1A3D318664; Fri, 9 Mar 2018 16:48:42 +0000 (UTC) Received: from unknown54ee7586bd10.attlocal.net.com (ovpn-116-138.phx2.redhat.com [10.3.116.138]) by smtp.corp.redhat.com (Postfix) with ESMTP id CF4B018661 for ; Fri, 9 Mar 2018 16:48:41 +0000 (UTC) From: John Ferlan To: libvir-list@redhat.com Date: Fri, 9 Mar 2018 11:48:10 -0500 Message-Id: <20180309164816.837-15-jferlan@redhat.com> In-Reply-To: <20180309164816.837-1-jferlan@redhat.com> References: <20180309164816.837-1-jferlan@redhat.com> X-Scanned-By: MIMEDefang 2.79 on 10.5.11.14 X-loop: libvir-list@redhat.com Subject: [libvirt] [PATCH 14/20] vmware: Properly clean up in vmwareDomainLookupByName 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.28]); Fri, 09 Mar 2018 16:51:07 +0000 (UTC) X-ZohoMail: RSF_0 Z_629925259 SPT_0 Content-Type: text/plain; charset="utf-8" The virDomainObjListFindByName returns a locked and reffed domain object, all we did was unlock it, leaving an extra ref. Use the virDomainObjEndAPI to cleanup instead. Signed-off-by: John Ferlan --- src/vmware/vmware_driver.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/vmware/vmware_driver.c b/src/vmware/vmware_driver.c index 9cd0bc438..d17fdfe3b 100644 --- a/src/vmware/vmware_driver.c +++ b/src/vmware/vmware_driver.c @@ -909,8 +909,7 @@ vmwareDomainLookupByName(virConnectPtr conn, const char= *name) dom =3D virGetDomain(conn, vm->def->name, vm->def->uuid, vm->def->id); =20 cleanup: - if (vm) - virObjectUnlock(vm); + virDomainObjEndAPI(&vm); return dom; } =20 --=20 2.13.6 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list From nobody Fri Apr 19 16:44:25 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=pass(p=none dis=none) header.from=redhat.com Return-Path: Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by mx.zohomail.com with SMTPS id 1520614271462545.5585061827297; Fri, 9 Mar 2018 08:51:11 -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 DDA9D80481; Fri, 9 Mar 2018 16:51:09 +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 B0DA6BABE; Fri, 9 Mar 2018 16:51:09 +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 749814CAB0; Fri, 9 Mar 2018 16:51:09 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.phx2.redhat.com [10.5.11.14]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id w29Gmg6i000574 for ; Fri, 9 Mar 2018 11:48:42 -0500 Received: by smtp.corp.redhat.com (Postfix) id 809DD18661; Fri, 9 Mar 2018 16:48:42 +0000 (UTC) Received: from unknown54ee7586bd10.attlocal.net.com (ovpn-116-138.phx2.redhat.com [10.3.116.138]) by smtp.corp.redhat.com (Postfix) with ESMTP id 417B25DD82 for ; Fri, 9 Mar 2018 16:48:42 +0000 (UTC) From: John Ferlan To: libvir-list@redhat.com Date: Fri, 9 Mar 2018 11:48:11 -0500 Message-Id: <20180309164816.837-16-jferlan@redhat.com> In-Reply-To: <20180309164816.837-1-jferlan@redhat.com> References: <20180309164816.837-1-jferlan@redhat.com> X-Scanned-By: MIMEDefang 2.79 on 10.5.11.14 X-loop: libvir-list@redhat.com Subject: [libvirt] [PATCH 15/20] vmware: Use virDomainObjListFindBy{UUID|ID}Ref 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.28]); Fri, 09 Mar 2018 16:51:10 +0000 (UTC) X-ZohoMail: RSF_0 Z_629925259 SPT_0 Content-Type: text/plain; charset="utf-8" For vmwareDomObjFromDomainLocked and vmwareDomainLookupByID let's return a locked and referenced @vm object so that callers can then use the common and more consistent virDomainObjEndAPI in order to handle cleanup rather than needing to know that the returned object is locked and calling virObjectUnlock. The LookupByName already returns the ref counted and locked object, so this will make things more consistent. Signed-off-by: John Ferlan --- src/vmware/vmware_driver.c | 49 ++++++++++++++++--------------------------= ---- 1 file changed, 17 insertions(+), 32 deletions(-) diff --git a/src/vmware/vmware_driver.c b/src/vmware/vmware_driver.c index d17fdfe3b..37a7b1932 100644 --- a/src/vmware/vmware_driver.c +++ b/src/vmware/vmware_driver.c @@ -67,7 +67,7 @@ vmwareDomObjFromDomainLocked(struct vmware_driver *driver, virDomainObjPtr vm; char uuidstr[VIR_UUID_STRING_BUFLEN]; =20 - if (!(vm =3D virDomainObjListFindByUUID(driver->domains, uuid))) { + if (!(vm =3D virDomainObjListFindByUUIDRef(driver->domains, uuid))) { virUUIDFormat(uuid, uuidstr); =20 virReportError(VIR_ERR_NO_DOMAIN, @@ -515,8 +515,7 @@ vmwareDomainShutdownFlags(virDomainPtr dom, =20 ret =3D 0; cleanup: - if (vm) - virObjectUnlock(vm); + virDomainObjEndAPI(&vm); vmwareDriverUnlock(driver); return ret; } @@ -577,8 +576,7 @@ vmwareDomainSuspend(virDomainPtr dom) ret =3D 0; =20 cleanup: - if (vm) - virObjectUnlock(vm); + virDomainObjEndAPI(&vm); return ret; } =20 @@ -619,8 +617,7 @@ vmwareDomainResume(virDomainPtr dom) ret =3D 0; =20 cleanup: - if (vm) - virObjectUnlock(vm); + virDomainObjEndAPI(&vm); return ret; } =20 @@ -660,8 +657,7 @@ vmwareDomainReboot(virDomainPtr dom, unsigned int flags) ret =3D 0; =20 cleanup: - if (vm) - virObjectUnlock(vm); + virDomainObjEndAPI(&vm); return ret; } =20 @@ -772,8 +768,7 @@ vmwareDomainCreateWithFlags(virDomainPtr dom, ret =3D vmwareStartVM(driver, vm); =20 cleanup: - if (vm) - virObjectUnlock(vm); + virDomainObjEndAPI(&vm); vmwareDriverUnlock(driver); return ret; } @@ -817,8 +812,7 @@ vmwareDomainUndefineFlags(virDomainPtr dom, ret =3D 0; =20 cleanup: - if (vm) - virObjectUnlock(vm); + virDomainObjEndAPI(&vm); vmwareDriverUnlock(driver); return ret; } @@ -837,7 +831,7 @@ vmwareDomainLookupByID(virConnectPtr conn, int id) virDomainPtr dom =3D NULL; =20 vmwareDriverLock(driver); - vm =3D virDomainObjListFindByID(driver->domains, id); + vm =3D virDomainObjListFindByIDRef(driver->domains, id); vmwareDriverUnlock(driver); =20 if (!vm) { @@ -849,8 +843,7 @@ vmwareDomainLookupByID(virConnectPtr conn, int id) dom =3D virGetDomain(conn, vm->def->name, vm->def->uuid, vm->def->id); =20 cleanup: - if (vm) - virObjectUnlock(vm); + virDomainObjEndAPI(&vm); return dom; } =20 @@ -866,8 +859,7 @@ vmwareDomainGetOSType(virDomainPtr dom) =20 ignore_value(VIR_STRDUP(ret, virDomainOSTypeToString(vm->def->os.type)= )); =20 - if (vm) - virObjectUnlock(vm); + virDomainObjEndAPI(&vm); return ret; } =20 @@ -884,8 +876,7 @@ vmwareDomainLookupByUUID(virConnectPtr conn, const unsi= gned char *uuid) =20 dom =3D virGetDomain(conn, vm->def->name, vm->def->uuid, vm->def->id); =20 - if (vm) - virObjectUnlock(vm); + virDomainObjEndAPI(&vm); return dom; } =20 @@ -925,8 +916,7 @@ vmwareDomainIsActive(virDomainPtr dom) =20 ret =3D virDomainObjIsActive(obj); =20 - if (obj) - virObjectUnlock(obj); + virDomainObjEndAPI(&obj); return ret; } =20 @@ -943,8 +933,7 @@ vmwareDomainIsPersistent(virDomainPtr dom) =20 ret =3D obj->persistent; =20 - if (obj) - virObjectUnlock(obj); + virDomainObjEndAPI(&obj); return ret; } =20 @@ -964,8 +953,7 @@ vmwareDomainGetXMLDesc(virDomainPtr dom, unsigned int f= lags) ret =3D virDomainDefFormat(vm->def, driver->caps, virDomainDefFormatConvertXMLFlags(flags)); =20 - if (vm) - virObjectUnlock(vm); + virDomainObjEndAPI(&vm); return ret; } =20 @@ -1097,8 +1085,7 @@ vmwareDomainGetInfo(virDomainPtr dom, virDomainInfoPt= r info) ret =3D 0; =20 cleanup: - if (vm) - virObjectUnlock(vm); + virDomainObjEndAPI(&vm); return ret; } =20 @@ -1124,8 +1111,7 @@ vmwareDomainGetState(virDomainPtr dom, ret =3D 0; =20 cleanup: - if (vm) - virObjectUnlock(vm); + virDomainObjEndAPI(&vm); return ret; } =20 @@ -1167,8 +1153,7 @@ vmwareDomainHasManagedSaveImage(virDomainPtr dom, uns= igned int flags) =20 ret =3D 0; =20 - if (obj) - virObjectUnlock(obj); + virDomainObjEndAPI(&obj); return ret; } =20 --=20 2.13.6 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list From nobody Fri Apr 19 16:44:25 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=pass(p=none dis=none) header.from=redhat.com Return-Path: Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by mx.zohomail.com with SMTPS id 1520614308556286.7507859172172; Fri, 9 Mar 2018 08:51:48 -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 0450346668; Fri, 9 Mar 2018 16:51:47 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.20]) by smtp.corp.redhat.com (Postfix) with ESMTPS id D1883BABE; Fri, 9 Mar 2018 16:51:46 +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 96D20181BA02; Fri, 9 Mar 2018 16:51:46 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.phx2.redhat.com [10.5.11.14]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id w29GmhJa000584 for ; Fri, 9 Mar 2018 11:48:43 -0500 Received: by smtp.corp.redhat.com (Postfix) id 3B77618661; Fri, 9 Mar 2018 16:48:43 +0000 (UTC) Received: from unknown54ee7586bd10.attlocal.net.com (ovpn-116-138.phx2.redhat.com [10.3.116.138]) by smtp.corp.redhat.com (Postfix) with ESMTP id ED9825DD82 for ; Fri, 9 Mar 2018 16:48:42 +0000 (UTC) From: John Ferlan To: libvir-list@redhat.com Date: Fri, 9 Mar 2018 11:48:12 -0500 Message-Id: <20180309164816.837-17-jferlan@redhat.com> In-Reply-To: <20180309164816.837-1-jferlan@redhat.com> References: <20180309164816.837-1-jferlan@redhat.com> X-Scanned-By: MIMEDefang 2.79 on 10.5.11.14 X-loop: libvir-list@redhat.com Subject: [libvirt] [PATCH 16/20] vz: Unify vzDomObjFromDomain{Ref} 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.30]); Fri, 09 Mar 2018 16:51:47 +0000 (UTC) X-ZohoMail: RSF_0 Z_629925259 SPT_0 Content-Type: text/plain; charset="utf-8" Rather than have two API's doing different things for different callers, let's make one API that will always return a locked and ref counted object. That way, the callers will always know that they must call virDomainObjEndAPI and not have to decide whether they should call virObjectUnlock instead. This will make things consistent with LookupByName which returns the locked and ref counted object. Signed-off-by: John Ferlan --- src/vz/vz_driver.c | 111 ++++++++++++++++++++++++++-----------------------= ---- src/vz/vz_utils.c | 32 +-------------- src/vz/vz_utils.h | 1 - 3 files changed, 56 insertions(+), 88 deletions(-) diff --git a/src/vz/vz_driver.c b/src/vz/vz_driver.c index 6d02ef274..1118ef92f 100644 --- a/src/vz/vz_driver.c +++ b/src/vz/vz_driver.c @@ -654,7 +654,7 @@ vzDomainGetInfo(virDomainPtr domain, virDomainInfoPtr i= nfo) vzDomObjPtr privdom; int ret =3D -1; =20 - if (!(dom =3D vzDomObjFromDomainRef(domain))) + if (!(dom =3D vzDomObjFromDomain(domain))) goto cleanup; =20 if (virDomainGetInfoEnsureACL(domain->conn, dom->def) < 0) @@ -703,7 +703,7 @@ vzDomainGetOSType(virDomainPtr domain) ignore_value(VIR_STRDUP(ret, virDomainOSTypeToString(dom->def->os.type= ))); =20 cleanup: - virObjectUnlock(dom); + virDomainObjEndAPI(&dom); return ret; } =20 @@ -722,7 +722,7 @@ vzDomainIsPersistent(virDomainPtr domain) ret =3D 1; =20 cleanup: - virObjectUnlock(dom); + virDomainObjEndAPI(&dom); return ret; } =20 @@ -745,7 +745,7 @@ vzDomainGetState(virDomainPtr domain, ret =3D 0; =20 cleanup: - virObjectUnlock(dom); + virDomainObjEndAPI(&dom); return ret; } =20 @@ -771,7 +771,7 @@ vzDomainGetXMLDesc(virDomainPtr domain, unsigned int fl= ags) ret =3D virDomainDefFormat(def, privconn->driver->caps, flags); =20 cleanup: - virObjectUnlock(dom); + virDomainObjEndAPI(&dom); return ret; } =20 @@ -791,7 +791,7 @@ vzDomainGetAutostart(virDomainPtr domain, int *autostar= t) ret =3D 0; =20 cleanup: - virObjectUnlock(dom); + virDomainObjEndAPI(&dom); return ret; } =20 @@ -985,7 +985,7 @@ vzDomainGetVcpus(virDomainPtr domain, size_t i; int ret =3D -1; =20 - if (!(dom =3D vzDomObjFromDomainRef(domain))) + if (!(dom =3D vzDomObjFromDomain(domain))) return -1; =20 if (virDomainGetVcpusEnsureACL(domain->conn, dom->def) < 0) @@ -1087,7 +1087,7 @@ vzDomainSuspend(virDomainPtr domain) int ret =3D -1; bool job =3D false; =20 - if (!(dom =3D vzDomObjFromDomainRef(domain))) + if (!(dom =3D vzDomObjFromDomain(domain))) return -1; =20 if (virDomainSuspendEnsureACL(domain->conn, dom->def) < 0) @@ -1124,7 +1124,7 @@ vzDomainResume(virDomainPtr domain) int ret =3D -1; bool job =3D false; =20 - if (!(dom =3D vzDomObjFromDomainRef(domain))) + if (!(dom =3D vzDomObjFromDomain(domain))) return -1; =20 if (virDomainResumeEnsureACL(domain->conn, dom->def) < 0) @@ -1163,7 +1163,7 @@ vzDomainCreateWithFlags(virDomainPtr domain, unsigned= int flags) =20 virCheckFlags(0, -1); =20 - if (!(dom =3D vzDomObjFromDomainRef(domain))) + if (!(dom =3D vzDomObjFromDomain(domain))) return -1; =20 if (virDomainCreateWithFlagsEnsureACL(domain->conn, dom->def) < 0) @@ -1202,7 +1202,7 @@ vzDomainDestroyFlags(virDomainPtr domain, unsigned in= t flags) =20 virCheckFlags(0, -1); =20 - if (!(dom =3D vzDomObjFromDomainRef(domain))) + if (!(dom =3D vzDomObjFromDomain(domain))) return -1; =20 if (virDomainDestroyFlagsEnsureACL(domain->conn, dom->def) < 0) @@ -1247,7 +1247,7 @@ vzDomainShutdownFlags(virDomainPtr domain, unsigned i= nt flags) =20 virCheckFlags(0, -1); =20 - if (!(dom =3D vzDomObjFromDomainRef(domain))) + if (!(dom =3D vzDomObjFromDomain(domain))) return -1; =20 if (virDomainShutdownFlagsEnsureACL(domain->conn, dom->def, flags) < 0) @@ -1291,7 +1291,7 @@ vzDomainReboot(virDomainPtr domain, unsigned int flag= s) =20 virCheckFlags(0, -1); =20 - if (!(dom =3D vzDomObjFromDomainRef(domain))) + if (!(dom =3D vzDomObjFromDomain(domain))) return -1; =20 if (virDomainRebootEnsureACL(domain->conn, dom->def, flags) < 0) @@ -1334,7 +1334,7 @@ static int vzDomainIsActive(virDomainPtr domain) ret =3D virDomainObjIsActive(dom); =20 cleanup: - virObjectUnlock(dom); + virDomainObjEndAPI(&dom); =20 return ret; } @@ -1357,7 +1357,7 @@ vzDomainUndefineFlags(virDomainPtr domain, virCheckFlags(VIR_DOMAIN_UNDEFINE_MANAGED_SAVE | VIR_DOMAIN_UNDEFINE_SNAPSHOTS_METADATA, -1); =20 - if (!(dom =3D vzDomObjFromDomainRef(domain))) + if (!(dom =3D vzDomObjFromDomain(domain))) return -1; =20 if (virDomainUndefineFlagsEnsureACL(domain->conn, dom->def) < 0) @@ -1409,7 +1409,7 @@ vzDomainHasManagedSaveImage(virDomainPtr domain, unsi= gned int flags) ret =3D 0; =20 cleanup: - virObjectUnlock(dom); + virDomainObjEndAPI(&dom); =20 return ret; } @@ -1426,7 +1426,7 @@ vzDomainManagedSave(virDomainPtr domain, unsigned int= flags) virCheckFlags(VIR_DOMAIN_SAVE_RUNNING | VIR_DOMAIN_SAVE_PAUSED, -1); =20 - if (!(dom =3D vzDomObjFromDomainRef(domain))) + if (!(dom =3D vzDomObjFromDomain(domain))) return -1; =20 if (virDomainManagedSaveEnsureACL(domain->conn, dom->def) < 0) @@ -1469,7 +1469,7 @@ vzDomainManagedSaveRemove(virDomainPtr domain, unsign= ed int flags) =20 virCheckFlags(0, -1); =20 - if (!(dom =3D vzDomObjFromDomainRef(domain))) + if (!(dom =3D vzDomObjFromDomain(domain))) return -1; =20 if (virDomainManagedSaveRemoveEnsureACL(domain->conn, dom->def) < 0) @@ -1522,7 +1522,7 @@ static int vzDomainAttachDeviceFlags(virDomainPtr dom= ain, const char *xml, virCheckFlags(VIR_DOMAIN_AFFECT_LIVE | VIR_DOMAIN_AFFECT_CONFIG, -1); =20 - if (!(dom =3D vzDomObjFromDomainRef(domain))) + if (!(dom =3D vzDomObjFromDomain(domain))) return -1; =20 if (vzCheckConfigUpdateFlags(dom, &flags) < 0) @@ -1577,7 +1577,7 @@ static int vzDomainDetachDeviceFlags(virDomainPtr dom= ain, const char *xml, virCheckFlags(VIR_DOMAIN_AFFECT_LIVE | VIR_DOMAIN_AFFECT_CONFIG, -1); =20 - dom =3D vzDomObjFromDomainRef(domain); + dom =3D vzDomObjFromDomain(domain); if (dom =3D=3D NULL) return -1; =20 @@ -1634,7 +1634,7 @@ vzDomainSetUserPassword(virDomainPtr domain, bool job =3D false; =20 virCheckFlags(0, -1); - if (!(dom =3D vzDomObjFromDomainRef(domain))) + if (!(dom =3D vzDomObjFromDomain(domain))) return -1; =20 if (virDomainSetUserPasswordEnsureACL(domain->conn, dom->def) < 0) @@ -1670,7 +1670,7 @@ static int vzDomainUpdateDeviceFlags(virDomainPtr dom= ain, virCheckFlags(VIR_DOMAIN_AFFECT_LIVE | VIR_DOMAIN_AFFECT_CONFIG, -1); =20 - if (!(dom =3D vzDomObjFromDomainRef(domain))) + if (!(dom =3D vzDomObjFromDomain(domain))) return -1; =20 if (virDomainUpdateDeviceFlagsEnsureACL(domain->conn, dom->def, flags)= < 0) @@ -1723,7 +1723,7 @@ vzDomainGetMaxMemory(virDomainPtr domain) ret =3D virDomainDefGetMemoryTotal(dom->def); =20 cleanup: - virObjectUnlock(dom); + virDomainObjEndAPI(&dom); return ret; } =20 @@ -1784,7 +1784,7 @@ vzDomainBlockStats(virDomainPtr domain, virDomainObjPtr dom; int ret =3D -1; =20 - if (!(dom =3D vzDomObjFromDomainRef(domain))) + if (!(dom =3D vzDomObjFromDomain(domain))) return -1; =20 if (virDomainBlockStatsEnsureACL(domain->conn, dom->def) < 0) @@ -1851,7 +1851,7 @@ vzDomainBlockStatsFlags(virDomainPtr domain, /* We don't return strings, and thus trivially support this flag. */ flags &=3D ~VIR_TYPED_PARAM_STRING_OKAY; =20 - if (!(dom =3D vzDomObjFromDomainRef(domain))) + if (!(dom =3D vzDomObjFromDomain(domain))) return -1; =20 if (virDomainBlockStatsFlagsEnsureACL(domain->conn, dom->def) < 0) @@ -1880,7 +1880,7 @@ vzDomainInterfaceStats(virDomainPtr domain, vzDomObjPtr privdom; int ret =3D -1; =20 - if (!(dom =3D vzDomObjFromDomainRef(domain))) + if (!(dom =3D vzDomObjFromDomain(domain))) return -1; =20 if (virDomainInterfaceStatsEnsureACL(domain->conn, dom->def) < 0) @@ -1907,7 +1907,7 @@ vzDomainMemoryStats(virDomainPtr domain, int ret =3D -1; =20 virCheckFlags(0, -1); - if (!(dom =3D vzDomObjFromDomainRef(domain))) + if (!(dom =3D vzDomObjFromDomain(domain))) return -1; =20 if (virDomainMemoryStatsEnsureACL(domain->conn, dom->def) < 0) @@ -1946,7 +1946,7 @@ vzDomainGetVcpusFlags(virDomainPtr domain, ret =3D virDomainDefGetVcpus(dom->def); =20 cleanup: - virObjectUnlock(dom); + virDomainObjEndAPI(&dom); =20 return ret; } @@ -1973,7 +1973,7 @@ static int vzDomainIsUpdated(virDomainPtr domain) ret =3D 0; =20 cleanup: - virObjectUnlock(dom); + virDomainObjEndAPI(&dom); return ret; } =20 @@ -2110,7 +2110,7 @@ static int vzDomainSetMemoryFlags(virDomainPtr domain= , unsigned long memory, virCheckFlags(VIR_DOMAIN_AFFECT_LIVE | VIR_DOMAIN_AFFECT_CONFIG, -1); =20 - if (!(dom =3D vzDomObjFromDomainRef(domain))) + if (!(dom =3D vzDomObjFromDomain(domain))) return -1; =20 if (vzCheckConfigUpdateFlags(dom, &flags) < 0) @@ -2142,7 +2142,7 @@ static int vzDomainSetMemory(virDomainPtr domain, uns= igned long memory) int ret =3D -1; bool job =3D false; =20 - if (!(dom =3D vzDomObjFromDomainRef(domain))) + if (!(dom =3D vzDomObjFromDomain(domain))) return -1; =20 if (virDomainSetMemoryEnsureACL(domain->conn, dom->def) < 0) @@ -2217,7 +2217,7 @@ vzDomainSnapshotNum(virDomainPtr domain, unsigned int= flags) virCheckFlags(VIR_DOMAIN_SNAPSHOT_LIST_ROOTS | VIR_DOMAIN_SNAPSHOT_FILTERS_ALL, -1); =20 - if (!(dom =3D vzDomObjFromDomainRef(domain))) + if (!(dom =3D vzDomObjFromDomain(domain))) return -1; =20 if (virDomainSnapshotNumEnsureACL(domain->conn, dom->def) < 0) @@ -2248,7 +2248,7 @@ vzDomainSnapshotListNames(virDomainPtr domain, virCheckFlags(VIR_DOMAIN_SNAPSHOT_LIST_ROOTS | VIR_DOMAIN_SNAPSHOT_FILTERS_ALL, -1); =20 - if (!(dom =3D vzDomObjFromDomainRef(domain))) + if (!(dom =3D vzDomObjFromDomain(domain))) return -1; =20 if (virDomainSnapshotListNamesEnsureACL(domain->conn, dom->def) < 0) @@ -2278,7 +2278,7 @@ vzDomainListAllSnapshots(virDomainPtr domain, virCheckFlags(VIR_DOMAIN_SNAPSHOT_LIST_ROOTS | VIR_DOMAIN_SNAPSHOT_FILTERS_ALL, -1); =20 - if (!(dom =3D vzDomObjFromDomainRef(domain))) + if (!(dom =3D vzDomObjFromDomain(domain))) return -1; =20 if (virDomainListAllSnapshotsEnsureACL(domain->conn, dom->def) < 0) @@ -2308,7 +2308,7 @@ vzDomainSnapshotGetXMLDesc(virDomainSnapshotPtr snaps= hot, unsigned int flags) =20 virCheckFlags(VIR_DOMAIN_XML_SECURE, NULL); =20 - if (!(dom =3D vzDomObjFromDomainRef(snapshot->domain))) + if (!(dom =3D vzDomObjFromDomain(snapshot->domain))) return NULL; =20 if (virDomainSnapshotGetXMLDescEnsureACL(snapshot->domain->conn, dom->= def, flags) < 0) @@ -2345,7 +2345,7 @@ vzDomainSnapshotNumChildren(virDomainSnapshotPtr snap= shot, unsigned int flags) virCheckFlags(VIR_DOMAIN_SNAPSHOT_LIST_DESCENDANTS | VIR_DOMAIN_SNAPSHOT_FILTERS_ALL, -1); =20 - if (!(dom =3D vzDomObjFromDomainRef(snapshot->domain))) + if (!(dom =3D vzDomObjFromDomain(snapshot->domain))) return -1; =20 if (virDomainSnapshotNumChildrenEnsureACL(snapshot->domain->conn, dom-= >def) < 0) @@ -2380,7 +2380,7 @@ vzDomainSnapshotListChildrenNames(virDomainSnapshotPt= r snapshot, virCheckFlags(VIR_DOMAIN_SNAPSHOT_LIST_DESCENDANTS | VIR_DOMAIN_SNAPSHOT_FILTERS_ALL, -1); =20 - if (!(dom =3D vzDomObjFromDomainRef(snapshot->domain))) + if (!(dom =3D vzDomObjFromDomain(snapshot->domain))) return -1; =20 if (virDomainSnapshotListChildrenNamesEnsureACL(snapshot->domain->conn= , dom->def) < 0) @@ -2414,7 +2414,7 @@ vzDomainSnapshotListAllChildren(virDomainSnapshotPtr = snapshot, virCheckFlags(VIR_DOMAIN_SNAPSHOT_LIST_DESCENDANTS | VIR_DOMAIN_SNAPSHOT_FILTERS_ALL, -1); =20 - if (!(dom =3D vzDomObjFromDomainRef(snapshot->domain))) + if (!(dom =3D vzDomObjFromDomain(snapshot->domain))) return -1; =20 if (virDomainSnapshotListAllChildrenEnsureACL(snapshot->domain->conn, = dom->def) < 0) @@ -2447,7 +2447,7 @@ vzDomainSnapshotLookupByName(virDomainPtr domain, =20 virCheckFlags(0, NULL); =20 - if (!(dom =3D vzDomObjFromDomainRef(domain))) + if (!(dom =3D vzDomObjFromDomain(domain))) return NULL; =20 if (virDomainSnapshotLookupByNameEnsureACL(domain->conn, dom->def) < 0) @@ -2477,7 +2477,7 @@ vzDomainHasCurrentSnapshot(virDomainPtr domain, unsig= ned int flags) =20 virCheckFlags(0, -1); =20 - if (!(dom =3D vzDomObjFromDomainRef(domain))) + if (!(dom =3D vzDomObjFromDomain(domain))) return -1; =20 if (virDomainHasCurrentSnapshotEnsureACL(domain->conn, dom->def) < 0) @@ -2505,7 +2505,7 @@ vzDomainSnapshotGetParent(virDomainSnapshotPtr snapsh= ot, unsigned int flags) =20 virCheckFlags(0, NULL); =20 - if (!(dom =3D vzDomObjFromDomainRef(snapshot->domain))) + if (!(dom =3D vzDomObjFromDomain(snapshot->domain))) return NULL; =20 if (virDomainSnapshotGetParentEnsureACL(snapshot->domain->conn, dom->d= ef) < 0) @@ -2543,7 +2543,7 @@ vzDomainSnapshotCurrent(virDomainPtr domain, unsigned= int flags) =20 virCheckFlags(0, NULL); =20 - if (!(dom =3D vzDomObjFromDomainRef(domain))) + if (!(dom =3D vzDomObjFromDomain(domain))) return NULL; =20 if (virDomainSnapshotCurrentEnsureACL(domain->conn, dom->def) < 0) @@ -2577,7 +2577,7 @@ vzDomainSnapshotIsCurrent(virDomainSnapshotPtr snapsh= ot, unsigned int flags) =20 virCheckFlags(0, -1); =20 - if (!(dom =3D vzDomObjFromDomainRef(snapshot->domain))) + if (!(dom =3D vzDomObjFromDomain(snapshot->domain))) return -1; =20 if (virDomainSnapshotIsCurrentEnsureACL(snapshot->domain->conn, dom->d= ef) < 0) @@ -2607,7 +2607,7 @@ vzDomainSnapshotHasMetadata(virDomainSnapshotPtr snap= shot, =20 virCheckFlags(0, -1); =20 - if (!(dom =3D vzDomObjFromDomainRef(snapshot->domain))) + if (!(dom =3D vzDomObjFromDomain(snapshot->domain))) return -1; =20 if (virDomainSnapshotHasMetadataEnsureACL(snapshot->domain->conn, dom-= >def) < 0) @@ -2645,7 +2645,7 @@ vzDomainSnapshotCreateXML(virDomainPtr domain, =20 virCheckFlags(0, NULL); =20 - if (!(dom =3D vzDomObjFromDomainRef(domain))) + if (!(dom =3D vzDomObjFromDomain(domain))) return NULL; =20 if (virDomainSnapshotCreateXMLEnsureACL(domain->conn, dom->def, flags)= < 0) @@ -2708,7 +2708,7 @@ vzDomainSnapshotDelete(virDomainSnapshotPtr snapshot,= unsigned int flags) =20 virCheckFlags(VIR_DOMAIN_SNAPSHOT_DELETE_CHILDREN, -1); =20 - if (!(dom =3D vzDomObjFromDomainRef(snapshot->domain))) + if (!(dom =3D vzDomObjFromDomain(snapshot->domain))) return -1; =20 if (virDomainSnapshotDeleteEnsureACL(snapshot->domain->conn, dom->def)= < 0) @@ -2732,7 +2732,7 @@ vzDomainRevertToSnapshot(virDomainSnapshotPtr snapsho= t, unsigned int flags) =20 virCheckFlags(VIR_DOMAIN_SNAPSHOT_REVERT_PAUSED, -1); =20 - if (!(dom =3D vzDomObjFromDomainRef(snapshot->domain))) + if (!(dom =3D vzDomObjFromDomain(snapshot->domain))) return -1; =20 if (virDomainRevertToSnapshotEnsureACL(snapshot->domain->conn, dom->de= f) < 0) @@ -2978,8 +2978,7 @@ vzDomainMigrateBegin3Params(virDomainPtr domain, =20 cleanup: =20 - if (dom) - virObjectUnlock(dom); + virDomainObjEndAPI(&dom); return xml; } =20 @@ -3309,7 +3308,7 @@ vzDomainMigratePerform3Params(virDomainPtr domain, if (virTypedParamsValidate(params, nparams, VZ_MIGRATION_PARAMETERS) <= 0) return -1; =20 - if (!(dom =3D vzDomObjFromDomainRef(domain))) + if (!(dom =3D vzDomObjFromDomain(domain))) return -1; =20 if (virDomainMigratePerform3ParamsEnsureACL(domain->conn, dom->def) < = 0) @@ -3432,7 +3431,7 @@ vzDomainGetJobInfo(virDomainPtr domain, virDomainJobI= nfoPtr info) ret =3D vzDomainGetJobInfoImpl(dom, info); =20 cleanup: - virObjectUnlock(dom); + virDomainObjEndAPI(&dom); return ret; } =20 @@ -3504,7 +3503,7 @@ vzDomainGetJobStats(virDomainPtr domain, ret =3D vzDomainJobInfoToParams(&info, type, params, nparams); =20 cleanup: - virObjectUnlock(dom); + virDomainObjEndAPI(&dom); =20 return ret; } @@ -3883,7 +3882,7 @@ vzDomainAbortJob(virDomainPtr domain) virDomainObjPtr dom; int ret =3D -1; =20 - if (!(dom =3D vzDomObjFromDomainRef(domain))) + if (!(dom =3D vzDomObjFromDomain(domain))) return -1; =20 if (virDomainAbortJobEnsureACL(domain->conn, dom->def) < 0) @@ -3906,7 +3905,7 @@ vzDomainReset(virDomainPtr domain, unsigned int flags) =20 virCheckFlags(0, -1); =20 - if (!(dom =3D vzDomObjFromDomainRef(domain))) + if (!(dom =3D vzDomObjFromDomain(domain))) return -1; =20 if (virDomainResetEnsureACL(domain->conn, dom->def) < 0) @@ -3938,7 +3937,7 @@ static int vzDomainSetVcpusFlags(virDomainPtr domain,= unsigned int nvcpus, virCheckFlags(VIR_DOMAIN_AFFECT_LIVE | VIR_DOMAIN_AFFECT_CONFIG, -1); =20 - if (!(dom =3D vzDomObjFromDomainRef(domain))) + if (!(dom =3D vzDomObjFromDomain(domain))) goto cleanup; =20 if (vzCheckConfigUpdateFlags(dom, &flags) < 0) @@ -3981,7 +3980,7 @@ vzDomainBlockResize(virDomainPtr domain, =20 virCheckFlags(VIR_DOMAIN_BLOCK_RESIZE_BYTES, -1); =20 - if (!(dom =3D vzDomObjFromDomainRef(domain))) + if (!(dom =3D vzDomObjFromDomain(domain))) goto cleanup; =20 if (virDomainBlockResizeEnsureACL(domain->conn, dom->def) < 0) diff --git a/src/vz/vz_utils.c b/src/vz/vz_utils.c index 6fb27169a..8f4e3e347 100644 --- a/src/vz/vz_utils.c +++ b/src/vz/vz_utils.c @@ -63,43 +63,13 @@ static virDomainControllerType vz7ControllerTypes[] =3D= {VIR_DOMAIN_CONTROLLER_TYP * @domain: Domain pointer that has to be looked up * * This function looks up @domain and returns the appropriate virDomainObj= Ptr - * that has to be unlocked by virObjectUnlock(). - * - * Returns the domain object without incremented reference counter which i= s locked - * on success, NULL otherwise. - */ -virDomainObjPtr -vzDomObjFromDomain(virDomainPtr domain) -{ - virDomainObjPtr vm; - vzConnPtr privconn =3D domain->conn->privateData; - char uuidstr[VIR_UUID_STRING_BUFLEN]; - vzDriverPtr driver =3D privconn->driver; - - vm =3D virDomainObjListFindByUUID(driver->domains, domain->uuid); - if (!vm) { - virUUIDFormat(domain->uuid, uuidstr); - virReportError(VIR_ERR_NO_DOMAIN, - _("no domain with matching uuid '%s' (%s)"), - uuidstr, domain->name); - return NULL; - } - - return vm; -} - -/** - * vzDomObjFromDomainRef: - * @domain: Domain pointer that has to be looked up - * - * This function looks up @domain and returns the appropriate virDomainObj= Ptr * that has to be released by calling virDomainObjEndAPI(). * * Returns the domain object with incremented reference counter which is l= ocked * on success, NULL otherwise. */ virDomainObjPtr -vzDomObjFromDomainRef(virDomainPtr domain) +vzDomObjFromDomain(virDomainPtr domain) { virDomainObjPtr vm; vzConnPtr privconn =3D domain->conn->privateData; diff --git a/src/vz/vz_utils.h b/src/vz/vz_utils.h index f9e9dee42..40a1ce23d 100644 --- a/src/vz/vz_utils.h +++ b/src/vz/vz_utils.h @@ -120,7 +120,6 @@ void* vzDomObjAlloc(void *opaque); void vzDomObjFree(void *p); =20 virDomainObjPtr vzDomObjFromDomain(virDomainPtr domain); -virDomainObjPtr vzDomObjFromDomainRef(virDomainPtr domain); =20 char * vzGetOutput(const char *binary, ...) ATTRIBUTE_NONNULL(1) ATTRIBUTE_SENTINEL; --=20 2.13.6 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list From nobody Fri Apr 19 16:44:25 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=pass(p=none dis=none) header.from=redhat.com Return-Path: Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by mx.zohomail.com with SMTPS id 1520614273936846.2953466358774; Fri, 9 Mar 2018 08:51:13 -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 B29E23399B; Fri, 9 Mar 2018 16:51:12 +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 87C6618B9C; Fri, 9 Mar 2018 16:51:12 +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 4F9E64CAB3; Fri, 9 Mar 2018 16:51:12 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.phx2.redhat.com [10.5.11.14]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id w29Gmh3q000590 for ; Fri, 9 Mar 2018 11:48:43 -0500 Received: by smtp.corp.redhat.com (Postfix) id A083C18661; Fri, 9 Mar 2018 16:48:43 +0000 (UTC) Received: from unknown54ee7586bd10.attlocal.net.com (ovpn-116-138.phx2.redhat.com [10.3.116.138]) by smtp.corp.redhat.com (Postfix) with ESMTP id 61E7F5DD82 for ; Fri, 9 Mar 2018 16:48:43 +0000 (UTC) From: John Ferlan To: libvir-list@redhat.com Date: Fri, 9 Mar 2018 11:48:13 -0500 Message-Id: <20180309164816.837-18-jferlan@redhat.com> In-Reply-To: <20180309164816.837-1-jferlan@redhat.com> References: <20180309164816.837-1-jferlan@redhat.com> X-Scanned-By: MIMEDefang 2.79 on 10.5.11.14 X-loop: libvir-list@redhat.com Subject: [libvirt] [PATCH 17/20] vz: Use virDomainObjListFindBy{UUID|ID}Ref 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.38]); Fri, 09 Mar 2018 16:51:13 +0000 (UTC) X-ZohoMail: RSF_0 Z_629925259 SPT_0 Content-Type: text/plain; charset="utf-8" For vzDomainLookupByID and vzDomainLookupByUUID let's return a locked and referenced @vm object so that callers can then use the common and more consistent virDomainObjEndAPI in order to handle cleanup rather than needing to know that the returned object is locked and calling virObjectUnlock. The LookupByName already returns the ref counted and locked object, so this will make things more consistent. Also adjust the prlsdkHandle{VmState|VmRemoved|Perf}Event APIs in the same manner. Signed-off-by: John Ferlan --- src/vz/vz_driver.c | 8 ++++---- src/vz/vz_sdk.c | 15 ++++++++------- 2 files changed, 12 insertions(+), 11 deletions(-) diff --git a/src/vz/vz_driver.c b/src/vz/vz_driver.c index 1118ef92f..68ae2f8e0 100644 --- a/src/vz/vz_driver.c +++ b/src/vz/vz_driver.c @@ -578,7 +578,7 @@ vzDomainLookupByID(virConnectPtr conn, int id) virDomainPtr ret =3D NULL; virDomainObjPtr dom; =20 - dom =3D virDomainObjListFindByID(privconn->driver->domains, id); + dom =3D virDomainObjListFindByIDRef(privconn->driver->domains, id); =20 if (dom =3D=3D NULL) { virReportError(VIR_ERR_NO_DOMAIN, NULL); @@ -591,7 +591,7 @@ vzDomainLookupByID(virConnectPtr conn, int id) ret =3D virGetDomain(conn, dom->def->name, dom->def->uuid, dom->def->i= d); =20 cleanup: - virObjectUnlock(dom); + virDomainObjEndAPI(&dom); return ret; } =20 @@ -602,7 +602,7 @@ vzDomainLookupByUUID(virConnectPtr conn, const unsigned= char *uuid) virDomainPtr ret =3D NULL; virDomainObjPtr dom; =20 - dom =3D virDomainObjListFindByUUID(privconn->driver->domains, uuid); + dom =3D virDomainObjListFindByUUIDRef(privconn->driver->domains, uuid); =20 if (dom =3D=3D NULL) { char uuidstr[VIR_UUID_STRING_BUFLEN]; @@ -618,7 +618,7 @@ vzDomainLookupByUUID(virConnectPtr conn, const unsigned= char *uuid) ret =3D virGetDomain(conn, dom->def->name, dom->def->uuid, dom->def->i= d); =20 cleanup: - virObjectUnlock(dom); + virDomainObjEndAPI(&dom); return ret; } =20 diff --git a/src/vz/vz_sdk.c b/src/vz/vz_sdk.c index a5b9f2da6..b8f13f88a 100644 --- a/src/vz/vz_sdk.c +++ b/src/vz/vz_sdk.c @@ -2144,7 +2144,7 @@ prlsdkHandleVmStateEvent(vzDriverPtr driver, virDomainEventType lvEventType =3D 0; int lvEventTypeDetails =3D 0; =20 - dom =3D virDomainObjListFindByUUID(driver->domains, uuid); + dom =3D virDomainObjListFindByUUIDRef(driver->domains, uuid); if (dom =3D=3D NULL) return; =20 @@ -2166,7 +2166,7 @@ prlsdkHandleVmStateEvent(vzDriverPtr driver, =20 cleanup: PrlHandle_Free(eventParam); - virObjectUnlock(dom); + virObjectEndAPI(&dom); return; } =20 @@ -2225,7 +2225,7 @@ prlsdkHandleVmRemovedEvent(vzDriverPtr driver, { virDomainObjPtr dom =3D NULL; =20 - dom =3D virDomainObjListFindByUUID(driver->domains, uuid); + dom =3D virDomainObjListFindByUUIDRef(driver->domains, uuid); /* domain was removed from the list from the libvirt * API function in current connection */ if (dom =3D=3D NULL) @@ -2235,6 +2235,7 @@ prlsdkHandleVmRemovedEvent(vzDriverPtr driver, VIR_DOMAIN_EVENT_UNDEFINED_REMOVED); =20 virDomainObjListRemove(driver->domains, dom); + virDomainObjEndAPI(&dom); return; } =20 @@ -2246,7 +2247,7 @@ prlsdkHandlePerfEvent(vzDriverPtr driver, virDomainObjPtr dom =3D NULL; vzDomObjPtr privdom =3D NULL; =20 - if (!(dom =3D virDomainObjListFindByUUID(driver->domains, uuid))) { + if (!(dom =3D virDomainObjListFindByUUIDRef(driver->domains, uuid))) { PrlHandle_Free(event); return; } @@ -2255,7 +2256,7 @@ prlsdkHandlePerfEvent(vzDriverPtr driver, PrlHandle_Free(privdom->stats); privdom->stats =3D event; =20 - virObjectUnlock(dom); + virDomainObjEndAPI(&dom); } =20 static void @@ -2269,7 +2270,7 @@ prlsdkHandleMigrationProgress(vzDriverPtr driver, PRL_HANDLE param =3D PRL_INVALID_HANDLE; PRL_RESULT pret; =20 - if (!(dom =3D virDomainObjListFindByUUID(driver->domains, uuid))) + if (!(dom =3D virDomainObjListFindByUUIDRef(driver->domains, uuid))) return; =20 pret =3D PrlEvent_GetParam(event, 0, ¶m); @@ -2283,7 +2284,7 @@ prlsdkHandleMigrationProgress(vzDriverPtr driver, =20 cleanup: PrlHandle_Free(param); - virObjectUnlock(dom); + virDomainObjEndAPI(&dom); } =20 static PRL_RESULT --=20 2.13.6 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list From nobody Fri Apr 19 16:44:25 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=pass(p=none dis=none) header.from=redhat.com Return-Path: Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by mx.zohomail.com with SMTPS id 1520614276721107.53963914961957; Fri, 9 Mar 2018 08:51:16 -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 72F3333BDF; Fri, 9 Mar 2018 16:51:15 +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 4CF24BABC; Fri, 9 Mar 2018 16:51:15 +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 16B014CAB5; Fri, 9 Mar 2018 16:51:15 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.phx2.redhat.com [10.5.11.14]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id w29Gmiag000596 for ; Fri, 9 Mar 2018 11:48:44 -0500 Received: by smtp.corp.redhat.com (Postfix) id 17FD518664; Fri, 9 Mar 2018 16:48:44 +0000 (UTC) Received: from unknown54ee7586bd10.attlocal.net.com (ovpn-116-138.phx2.redhat.com [10.3.116.138]) by smtp.corp.redhat.com (Postfix) with ESMTP id CB85918661 for ; Fri, 9 Mar 2018 16:48:43 +0000 (UTC) From: John Ferlan To: libvir-list@redhat.com Date: Fri, 9 Mar 2018 11:48:14 -0500 Message-Id: <20180309164816.837-19-jferlan@redhat.com> In-Reply-To: <20180309164816.837-1-jferlan@redhat.com> References: <20180309164816.837-1-jferlan@redhat.com> X-Scanned-By: MIMEDefang 2.79 on 10.5.11.14 X-loop: libvir-list@redhat.com Subject: [libvirt] [PATCH 18/20] test: Use virDomainObjListFindByUUIDRef 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.38]); Fri, 09 Mar 2018 16:51:15 +0000 (UTC) X-ZohoMail: RSF_0 Z_629925259 SPT_0 Content-Type: text/plain; charset="utf-8" Rather than using virDomainObjListFindByUUID, use the ref counting API in order to use virDomainObjEndAPI instead of virObjectUnlock (for common look and feel). Signed-off-by: John Ferlan --- src/test/test_driver.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/test/test_driver.c b/src/test/test_driver.c index 043caa976..ce8c1001d 100644 --- a/src/test/test_driver.c +++ b/src/test/test_driver.c @@ -1725,7 +1725,7 @@ static virDomainPtr testDomainLookupByUUID(virConnect= Ptr conn, virDomainPtr ret =3D NULL; virDomainObjPtr dom; =20 - if (!(dom =3D virDomainObjListFindByUUID(privconn->domains, uuid))) { + if (!(dom =3D virDomainObjListFindByUUIDRef(privconn->domains, uuid)))= { virReportError(VIR_ERR_NO_DOMAIN, NULL); goto cleanup; } @@ -1733,8 +1733,7 @@ static virDomainPtr testDomainLookupByUUID(virConnect= Ptr conn, ret =3D virGetDomain(conn, dom->def->name, dom->def->uuid, dom->def->i= d); =20 cleanup: - if (dom) - virObjectUnlock(dom); + virDomainObjEndAPI(&dom); return ret; } =20 --=20 2.13.6 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list From nobody Fri Apr 19 16:44:25 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=pass(p=none dis=none) header.from=redhat.com Return-Path: Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by mx.zohomail.com with SMTPS id 1520614311674130.29489262300478; Fri, 9 Mar 2018 08:51:51 -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 712C620262; Fri, 9 Mar 2018 16:51:50 +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 3B5C2BABC; Fri, 9 Mar 2018 16:51:50 +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 F142A4CAA0; Fri, 9 Mar 2018 16:51:49 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.phx2.redhat.com [10.5.11.14]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id w29GmiCJ000605 for ; Fri, 9 Mar 2018 11:48:44 -0500 Received: by smtp.corp.redhat.com (Postfix) id 814D618661; Fri, 9 Mar 2018 16:48:44 +0000 (UTC) Received: from unknown54ee7586bd10.attlocal.net.com (ovpn-116-138.phx2.redhat.com [10.3.116.138]) by smtp.corp.redhat.com (Postfix) with ESMTP id 40F7818A50 for ; Fri, 9 Mar 2018 16:48:44 +0000 (UTC) From: John Ferlan To: libvir-list@redhat.com Date: Fri, 9 Mar 2018 11:48:15 -0500 Message-Id: <20180309164816.837-20-jferlan@redhat.com> In-Reply-To: <20180309164816.837-1-jferlan@redhat.com> References: <20180309164816.837-1-jferlan@redhat.com> X-Scanned-By: MIMEDefang 2.79 on 10.5.11.14 X-loop: libvir-list@redhat.com Subject: [libvirt] [PATCH 19/20] conf: Rework/rename virDomainObjListFindByUUIDRef 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.29]); Fri, 09 Mar 2018 16:51:50 +0000 (UTC) X-ZohoMail: RSF_0 Z_629925259 SPT_0 Content-Type: text/plain; charset="utf-8" Now that every caller is using virDomainObjListFindByUUIDRef, let's just remove it and keep the name as virDomainObjListFindByUUID. That allows reworking the virdomainobjlist API's a bit to be more like virDomainObjListFindByName. Signed-off-by: John Ferlan --- src/bhyve/bhyve_driver.c | 4 ++-- src/conf/virdomainobjlist.c | 35 +++++++---------------------------- src/conf/virdomainobjlist.h | 2 -- src/libvirt_private.syms | 1 - src/libxl/libxl_driver.c | 4 ++-- src/lxc/lxc_driver.c | 4 ++-- src/openvz/openvz_driver.c | 2 +- src/qemu/qemu_driver.c | 4 ++-- src/test/test_driver.c | 4 ++-- src/uml/uml_driver.c | 4 ++-- src/util/virclosecallbacks.c | 4 ++-- src/vmware/vmware_driver.c | 2 +- src/vz/vz_driver.c | 4 ++-- src/vz/vz_sdk.c | 14 +++++++------- src/vz/vz_utils.c | 2 +- 15 files changed, 33 insertions(+), 57 deletions(-) diff --git a/src/bhyve/bhyve_driver.c b/src/bhyve/bhyve_driver.c index 79963570c..4f95f6c15 100644 --- a/src/bhyve/bhyve_driver.c +++ b/src/bhyve/bhyve_driver.c @@ -168,7 +168,7 @@ bhyveDomObjFromDomain(virDomainPtr domain) bhyveConnPtr privconn =3D domain->conn->privateData; char uuidstr[VIR_UUID_STRING_BUFLEN]; =20 - vm =3D virDomainObjListFindByUUIDRef(privconn->domains, domain->uuid); + vm =3D virDomainObjListFindByUUID(privconn->domains, domain->uuid); if (!vm) { virUUIDFormat(domain->uuid, uuidstr); virReportError(VIR_ERR_NO_DOMAIN, @@ -794,7 +794,7 @@ bhyveDomainLookupByUUID(virConnectPtr conn, virDomainObjPtr vm; virDomainPtr dom =3D NULL; =20 - vm =3D virDomainObjListFindByUUIDRef(privconn->domains, uuid); + vm =3D virDomainObjListFindByUUID(privconn->domains, uuid); =20 if (!vm) { char uuidstr[VIR_UUID_STRING_BUFLEN]; diff --git a/src/conf/virdomainobjlist.c b/src/conf/virdomainobjlist.c index 87a742b1e..3290dfa29 100644 --- a/src/conf/virdomainobjlist.c +++ b/src/conf/virdomainobjlist.c @@ -152,10 +152,10 @@ virDomainObjListFindByIDRef(virDomainObjListPtr doms, return virDomainObjListFindByIDInternal(doms, id, true); } =20 -static virDomainObjPtr -virDomainObjListFindByUUIDInternal(virDomainObjListPtr doms, - const unsigned char *uuid, - bool ref) + +virDomainObjPtr +virDomainObjListFindByUUID(virDomainObjListPtr doms, + const unsigned char *uuid) { char uuidstr[VIR_UUID_STRING_BUFLEN]; virDomainObjPtr obj; @@ -164,41 +164,20 @@ virDomainObjListFindByUUIDInternal(virDomainObjListPt= r doms, virUUIDFormat(uuid, uuidstr); =20 obj =3D virHashLookup(doms->objs, uuidstr); - if (ref) { - virObjectRef(obj); - virObjectRWUnlock(doms); - } + virObjectRef(obj); + virObjectRWUnlock(doms); if (obj) { virObjectLock(obj); if (obj->removing) { virObjectUnlock(obj); - if (ref) - virObjectUnref(obj); + virObjectUnref(obj); obj =3D NULL; } } - if (!ref) - virObjectRWUnlock(doms); return obj; } =20 =20 -virDomainObjPtr -virDomainObjListFindByUUID(virDomainObjListPtr doms, - const unsigned char *uuid) -{ - return virDomainObjListFindByUUIDInternal(doms, uuid, false); -} - - -virDomainObjPtr -virDomainObjListFindByUUIDRef(virDomainObjListPtr doms, - const unsigned char *uuid) -{ - return virDomainObjListFindByUUIDInternal(doms, uuid, true); -} - - virDomainObjPtr virDomainObjListFindByName(virDomainObjListPtr doms, const char *name) { diff --git a/src/conf/virdomainobjlist.h b/src/conf/virdomainobjlist.h index bb186bde3..1b77a95ba 100644 --- a/src/conf/virdomainobjlist.h +++ b/src/conf/virdomainobjlist.h @@ -38,8 +38,6 @@ virDomainObjPtr virDomainObjListFindByIDRef(virDomainObjL= istPtr doms, int id); virDomainObjPtr virDomainObjListFindByUUID(virDomainObjListPtr doms, const unsigned char *uuid); -virDomainObjPtr virDomainObjListFindByUUIDRef(virDomainObjListPtr doms, - const unsigned char *uuid); virDomainObjPtr virDomainObjListFindByName(virDomainObjListPtr doms, const char *name); =20 diff --git a/src/libvirt_private.syms b/src/libvirt_private.syms index 3766e20d3..6f0cd9680 100644 --- a/src/libvirt_private.syms +++ b/src/libvirt_private.syms @@ -951,7 +951,6 @@ virDomainObjListFindByID; virDomainObjListFindByIDRef; virDomainObjListFindByName; virDomainObjListFindByUUID; -virDomainObjListFindByUUIDRef; virDomainObjListForEach; virDomainObjListGetActiveIDs; virDomainObjListGetInactiveNames; diff --git a/src/libxl/libxl_driver.c b/src/libxl/libxl_driver.c index e78fe2d4b..1379e9b83 100644 --- a/src/libxl/libxl_driver.c +++ b/src/libxl/libxl_driver.c @@ -313,7 +313,7 @@ libxlDomObjFromDomain(virDomainPtr dom) libxlDriverPrivatePtr driver =3D dom->conn->privateData; char uuidstr[VIR_UUID_STRING_BUFLEN]; =20 - vm =3D virDomainObjListFindByUUIDRef(driver->domains, dom->uuid); + vm =3D virDomainObjListFindByUUID(driver->domains, dom->uuid); if (!vm) { virUUIDFormat(dom->uuid, uuidstr); virReportError(VIR_ERR_NO_DOMAIN, @@ -1113,7 +1113,7 @@ libxlDomainLookupByUUID(virConnectPtr conn, const uns= igned char *uuid) virDomainObjPtr vm; virDomainPtr dom =3D NULL; =20 - vm =3D virDomainObjListFindByUUIDRef(driver->domains, uuid); + vm =3D virDomainObjListFindByUUID(driver->domains, uuid); if (!vm) { virReportError(VIR_ERR_NO_DOMAIN, NULL); goto cleanup; diff --git a/src/lxc/lxc_driver.c b/src/lxc/lxc_driver.c index fa6fc4643..ed3f0fbc9 100644 --- a/src/lxc/lxc_driver.c +++ b/src/lxc/lxc_driver.c @@ -138,7 +138,7 @@ lxcDomObjFromDomain(virDomainPtr domain) virLXCDriverPtr driver =3D domain->conn->privateData; char uuidstr[VIR_UUID_STRING_BUFLEN]; =20 - vm =3D virDomainObjListFindByUUIDRef(driver->domains, domain->uuid); + vm =3D virDomainObjListFindByUUID(driver->domains, domain->uuid); if (!vm) { virUUIDFormat(domain->uuid, uuidstr); virReportError(VIR_ERR_NO_DOMAIN, @@ -281,7 +281,7 @@ static virDomainPtr lxcDomainLookupByUUID(virConnectPtr= conn, virDomainObjPtr vm; virDomainPtr dom =3D NULL; =20 - vm =3D virDomainObjListFindByUUIDRef(driver->domains, uuid); + vm =3D virDomainObjListFindByUUID(driver->domains, uuid); =20 if (!vm) { char uuidstr[VIR_UUID_STRING_BUFLEN]; diff --git a/src/openvz/openvz_driver.c b/src/openvz/openvz_driver.c index b0b72b171..3d4e66168 100644 --- a/src/openvz/openvz_driver.c +++ b/src/openvz/openvz_driver.c @@ -95,7 +95,7 @@ openvzDomObjFromDomainLocked(struct openvz_driver *driver, virDomainObjPtr vm; char uuidstr[VIR_UUID_STRING_BUFLEN]; =20 - if (!(vm =3D virDomainObjListFindByUUIDRef(driver->domains, uuid))) { + if (!(vm =3D virDomainObjListFindByUUID(driver->domains, uuid))) { virUUIDFormat(uuid, uuidstr); =20 virReportError(VIR_ERR_NO_DOMAIN, diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c index e13544f83..4972b1fef 100644 --- a/src/qemu/qemu_driver.c +++ b/src/qemu/qemu_driver.c @@ -198,7 +198,7 @@ qemuDomObjFromDomain(virDomainPtr domain) virQEMUDriverPtr driver =3D domain->conn->privateData; char uuidstr[VIR_UUID_STRING_BUFLEN]; =20 - vm =3D virDomainObjListFindByUUIDRef(driver->domains, domain->uuid); + vm =3D virDomainObjListFindByUUID(driver->domains, domain->uuid); if (!vm) { virUUIDFormat(domain->uuid, uuidstr); virReportError(VIR_ERR_NO_DOMAIN, @@ -1556,7 +1556,7 @@ static virDomainPtr qemuDomainLookupByUUID(virConnect= Ptr conn, virDomainObjPtr vm; virDomainPtr dom =3D NULL; =20 - vm =3D virDomainObjListFindByUUIDRef(driver->domains, uuid); + vm =3D virDomainObjListFindByUUID(driver->domains, uuid); =20 if (!vm) { char uuidstr[VIR_UUID_STRING_BUFLEN]; diff --git a/src/test/test_driver.c b/src/test/test_driver.c index ce8c1001d..bef15c826 100644 --- a/src/test/test_driver.c +++ b/src/test/test_driver.c @@ -578,7 +578,7 @@ testDomObjFromDomain(virDomainPtr domain) testDriverPtr driver =3D domain->conn->privateData; char uuidstr[VIR_UUID_STRING_BUFLEN]; =20 - vm =3D virDomainObjListFindByUUIDRef(driver->domains, domain->uuid); + vm =3D virDomainObjListFindByUUID(driver->domains, domain->uuid); if (!vm) { virUUIDFormat(domain->uuid, uuidstr); virReportError(VIR_ERR_NO_DOMAIN, @@ -1725,7 +1725,7 @@ static virDomainPtr testDomainLookupByUUID(virConnect= Ptr conn, virDomainPtr ret =3D NULL; virDomainObjPtr dom; =20 - if (!(dom =3D virDomainObjListFindByUUIDRef(privconn->domains, uuid)))= { + if (!(dom =3D virDomainObjListFindByUUID(privconn->domains, uuid))) { virReportError(VIR_ERR_NO_DOMAIN, NULL); goto cleanup; } diff --git a/src/uml/uml_driver.c b/src/uml/uml_driver.c index 41c607e66..91797c0eb 100644 --- a/src/uml/uml_driver.c +++ b/src/uml/uml_driver.c @@ -171,7 +171,7 @@ umlDomObjFromDomainLocked(struct uml_driver *driver, virDomainObjPtr vm; char uuidstr[VIR_UUID_STRING_BUFLEN]; =20 - if (!(vm =3D virDomainObjListFindByUUIDRef(driver->domains, uuid))) { + if (!(vm =3D virDomainObjListFindByUUID(driver->domains, uuid))) { virUUIDFormat(uuid, uuidstr); =20 virReportError(VIR_ERR_NO_DOMAIN, @@ -767,7 +767,7 @@ static int umlProcessAutoDestroyDom(void *payload, return 0; } =20 - if (!(dom =3D virDomainObjListFindByUUIDRef(data->driver->domains, uui= d))) { + if (!(dom =3D virDomainObjListFindByUUID(data->driver->domains, uuid))= ) { VIR_DEBUG("No domain object to kill"); return 0; } diff --git a/src/util/virclosecallbacks.c b/src/util/virclosecallbacks.c index 4db50e8b6..544938e90 100644 --- a/src/util/virclosecallbacks.c +++ b/src/util/virclosecallbacks.c @@ -347,8 +347,8 @@ virCloseCallbacksRun(virCloseCallbacksPtr closeCallback= s, virDomainObjPtr vm; =20 /* Grab a ref and lock to the vm */ - if (!(vm =3D virDomainObjListFindByUUIDRef(domains, - list->entries[i].uuid))) { + if (!(vm =3D virDomainObjListFindByUUID(domains, + list->entries[i].uuid))) { char uuidstr[VIR_UUID_STRING_BUFLEN]; virUUIDFormat(list->entries[i].uuid, uuidstr); VIR_DEBUG("No domain object with UUID %s", uuidstr); diff --git a/src/vmware/vmware_driver.c b/src/vmware/vmware_driver.c index 37a7b1932..f427361d1 100644 --- a/src/vmware/vmware_driver.c +++ b/src/vmware/vmware_driver.c @@ -67,7 +67,7 @@ vmwareDomObjFromDomainLocked(struct vmware_driver *driver, virDomainObjPtr vm; char uuidstr[VIR_UUID_STRING_BUFLEN]; =20 - if (!(vm =3D virDomainObjListFindByUUIDRef(driver->domains, uuid))) { + if (!(vm =3D virDomainObjListFindByUUID(driver->domains, uuid))) { virUUIDFormat(uuid, uuidstr); =20 virReportError(VIR_ERR_NO_DOMAIN, diff --git a/src/vz/vz_driver.c b/src/vz/vz_driver.c index 68ae2f8e0..caa0170da 100644 --- a/src/vz/vz_driver.c +++ b/src/vz/vz_driver.c @@ -602,7 +602,7 @@ vzDomainLookupByUUID(virConnectPtr conn, const unsigned= char *uuid) virDomainPtr ret =3D NULL; virDomainObjPtr dom; =20 - dom =3D virDomainObjListFindByUUIDRef(privconn->driver->domains, uuid); + dom =3D virDomainObjListFindByUUID(privconn->driver->domains, uuid); =20 if (dom =3D=3D NULL) { char uuidstr[VIR_UUID_STRING_BUFLEN]; @@ -837,7 +837,7 @@ vzDomainDefineXMLFlags(virConnectPtr conn, const char *= xml, unsigned int flags) if (virDomainDefineXMLFlagsEnsureACL(conn, def) < 0) goto cleanup; =20 - dom =3D virDomainObjListFindByUUIDRef(driver->domains, def->uuid); + dom =3D virDomainObjListFindByUUID(driver->domains, def->uuid); if (dom =3D=3D NULL) { virResetLastError(); if (def->os.type =3D=3D VIR_DOMAIN_OSTYPE_HVM) { diff --git a/src/vz/vz_sdk.c b/src/vz/vz_sdk.c index b8f13f88a..0d14a1678 100644 --- a/src/vz/vz_sdk.c +++ b/src/vz/vz_sdk.c @@ -1958,7 +1958,7 @@ prlsdkLoadDomain(vzDriverPtr driver, goto error; =20 virObjectLock(driver); - if (!(olddom =3D virDomainObjListFindByUUIDRef(driver->domains, de= f->uuid))) + if (!(olddom =3D virDomainObjListFindByUUID(driver->domains, def->= uuid))) dom =3D virDomainObjListAdd(driver->domains, def, driver->xmlo= pt, 0, NULL); virObjectUnlock(driver); =20 @@ -2144,7 +2144,7 @@ prlsdkHandleVmStateEvent(vzDriverPtr driver, virDomainEventType lvEventType =3D 0; int lvEventTypeDetails =3D 0; =20 - dom =3D virDomainObjListFindByUUIDRef(driver->domains, uuid); + dom =3D virDomainObjListFindByUUID(driver->domains, uuid); if (dom =3D=3D NULL) return; =20 @@ -2177,7 +2177,7 @@ prlsdkHandleVmConfigEvent(vzDriverPtr driver, virDomainObjPtr dom =3D NULL; bool job =3D false; =20 - dom =3D virDomainObjListFindByUUIDRef(driver->domains, uuid); + dom =3D virDomainObjListFindByUUID(driver->domains, uuid); if (dom =3D=3D NULL) return; =20 @@ -2207,7 +2207,7 @@ prlsdkHandleVmAddedEvent(vzDriverPtr driver, { virDomainObjPtr dom =3D NULL; =20 - if (!(dom =3D virDomainObjListFindByUUIDRef(driver->domains, uuid)) && + if (!(dom =3D virDomainObjListFindByUUID(driver->domains, uuid)) && !(dom =3D prlsdkAddDomainByUUID(driver, uuid))) goto cleanup; =20 @@ -2225,7 +2225,7 @@ prlsdkHandleVmRemovedEvent(vzDriverPtr driver, { virDomainObjPtr dom =3D NULL; =20 - dom =3D virDomainObjListFindByUUIDRef(driver->domains, uuid); + dom =3D virDomainObjListFindByUUID(driver->domains, uuid); /* domain was removed from the list from the libvirt * API function in current connection */ if (dom =3D=3D NULL) @@ -2247,7 +2247,7 @@ prlsdkHandlePerfEvent(vzDriverPtr driver, virDomainObjPtr dom =3D NULL; vzDomObjPtr privdom =3D NULL; =20 - if (!(dom =3D virDomainObjListFindByUUIDRef(driver->domains, uuid))) { + if (!(dom =3D virDomainObjListFindByUUID(driver->domains, uuid))) { PrlHandle_Free(event); return; } @@ -2270,7 +2270,7 @@ prlsdkHandleMigrationProgress(vzDriverPtr driver, PRL_HANDLE param =3D PRL_INVALID_HANDLE; PRL_RESULT pret; =20 - if (!(dom =3D virDomainObjListFindByUUIDRef(driver->domains, uuid))) + if (!(dom =3D virDomainObjListFindByUUID(driver->domains, uuid))) return; =20 pret =3D PrlEvent_GetParam(event, 0, ¶m); diff --git a/src/vz/vz_utils.c b/src/vz/vz_utils.c index 8f4e3e347..13f5deeaa 100644 --- a/src/vz/vz_utils.c +++ b/src/vz/vz_utils.c @@ -76,7 +76,7 @@ vzDomObjFromDomain(virDomainPtr domain) char uuidstr[VIR_UUID_STRING_BUFLEN]; vzDriverPtr driver =3D privconn->driver; =20 - vm =3D virDomainObjListFindByUUIDRef(driver->domains, domain->uuid); + vm =3D virDomainObjListFindByUUID(driver->domains, domain->uuid); if (!vm) { virUUIDFormat(domain->uuid, uuidstr); virReportError(VIR_ERR_NO_DOMAIN, --=20 2.13.6 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list From nobody Fri Apr 19 16:44:25 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=pass(p=none dis=none) header.from=redhat.com Return-Path: Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by mx.zohomail.com with SMTPS id 152061424935875.21156893962484; Fri, 9 Mar 2018 08:50:49 -0800 (PST) Received: from smtp.corp.redhat.com (int-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.11]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id C6AB213AAE; Fri, 9 Mar 2018 16:50:47 +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 A2198620AD; Fri, 9 Mar 2018 16:50:47 +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 6A5BA4CAA8; Fri, 9 Mar 2018 16:50:47 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.phx2.redhat.com [10.5.11.14]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id w29GmjMf000613 for ; Fri, 9 Mar 2018 11:48:45 -0500 Received: by smtp.corp.redhat.com (Postfix) id 44E1418664; Fri, 9 Mar 2018 16:48:45 +0000 (UTC) Received: from unknown54ee7586bd10.attlocal.net.com (ovpn-116-138.phx2.redhat.com [10.3.116.138]) by smtp.corp.redhat.com (Postfix) with ESMTP id 04A5818661 for ; Fri, 9 Mar 2018 16:48:44 +0000 (UTC) From: John Ferlan To: libvir-list@redhat.com Date: Fri, 9 Mar 2018 11:48:16 -0500 Message-Id: <20180309164816.837-21-jferlan@redhat.com> In-Reply-To: <20180309164816.837-1-jferlan@redhat.com> References: <20180309164816.837-1-jferlan@redhat.com> X-Scanned-By: MIMEDefang 2.79 on 10.5.11.14 X-loop: libvir-list@redhat.com Subject: [libvirt] [PATCH 20/20] conf: Rework/rename virDomainObjListFindByIDRef 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.11 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.29]); Fri, 09 Mar 2018 16:50:48 +0000 (UTC) X-ZohoMail: RSF_0 Z_629925259 SPT_0 Content-Type: text/plain; charset="utf-8" Rework the code such that virDomainObjListFindByID will always return a locked/ref counted object so that the callers can always do the same cleanup logic to call virDomainObjEndAPI. Makes accessing the objects much more consistent. NB: There were 3 callers (lxcDomainLookupByID, testDomainLookupByID, and qemuDomainLookupByID) that were already using the ByID name, but not the virDomainObjEndAPI - these were changed as well in this update/patch. Signed-off-by: John Ferlan --- src/bhyve/bhyve_driver.c | 2 +- src/conf/virdomainobjlist.c | 35 +++++++++-------------------------- src/conf/virdomainobjlist.h | 2 -- src/libvirt_private.syms | 1 - src/libxl/libxl_domain.c | 2 +- src/libxl/libxl_driver.c | 2 +- src/lxc/lxc_driver.c | 3 +-- src/openvz/openvz_driver.c | 2 +- src/qemu/qemu_driver.c | 5 ++--- src/test/test_driver.c | 3 +-- src/uml/uml_driver.c | 2 +- src/vmware/vmware_driver.c | 2 +- src/vz/vz_driver.c | 2 +- 13 files changed, 20 insertions(+), 43 deletions(-) diff --git a/src/bhyve/bhyve_driver.c b/src/bhyve/bhyve_driver.c index 4f95f6c15..1fd31912d 100644 --- a/src/bhyve/bhyve_driver.c +++ b/src/bhyve/bhyve_driver.c @@ -847,7 +847,7 @@ bhyveDomainLookupByID(virConnectPtr conn, virDomainObjPtr vm; virDomainPtr dom =3D NULL; =20 - vm =3D virDomainObjListFindByIDRef(privconn->domains, id); + vm =3D virDomainObjListFindByID(privconn->domains, id); =20 if (!vm) { virReportError(VIR_ERR_NO_DOMAIN, diff --git a/src/conf/virdomainobjlist.c b/src/conf/virdomainobjlist.c index 3290dfa29..983b6fda7 100644 --- a/src/conf/virdomainobjlist.c +++ b/src/conf/virdomainobjlist.c @@ -112,44 +112,27 @@ static int virDomainObjListSearchID(const void *paylo= ad, return want; } =20 -static virDomainObjPtr -virDomainObjListFindByIDInternal(virDomainObjListPtr doms, - int id, - bool ref) + +virDomainObjPtr +virDomainObjListFindByID(virDomainObjListPtr doms, + int id) { virDomainObjPtr obj; + virObjectRWLockRead(doms); obj =3D virHashSearch(doms->objs, virDomainObjListSearchID, &id, NULL); - if (ref) { - virObjectRef(obj); - virObjectRWUnlock(doms); - } + virObjectRef(obj); + virObjectRWUnlock(doms); if (obj) { virObjectLock(obj); if (obj->removing) { virObjectUnlock(obj); - if (ref) - virObjectUnref(obj); + virObjectUnref(obj); obj =3D NULL; } } - if (!ref) - virObjectRWUnlock(doms); - return obj; -} - -virDomainObjPtr -virDomainObjListFindByID(virDomainObjListPtr doms, - int id) -{ - return virDomainObjListFindByIDInternal(doms, id, false); -} =20 -virDomainObjPtr -virDomainObjListFindByIDRef(virDomainObjListPtr doms, - int id) -{ - return virDomainObjListFindByIDInternal(doms, id, true); + return obj; } =20 =20 diff --git a/src/conf/virdomainobjlist.h b/src/conf/virdomainobjlist.h index 1b77a95ba..7e2dece3a 100644 --- a/src/conf/virdomainobjlist.h +++ b/src/conf/virdomainobjlist.h @@ -34,8 +34,6 @@ virDomainObjListPtr virDomainObjListNew(void); =20 virDomainObjPtr virDomainObjListFindByID(virDomainObjListPtr doms, int id); -virDomainObjPtr virDomainObjListFindByIDRef(virDomainObjListPtr doms, - int id); virDomainObjPtr virDomainObjListFindByUUID(virDomainObjListPtr doms, const unsigned char *uuid); virDomainObjPtr virDomainObjListFindByName(virDomainObjListPtr doms, diff --git a/src/libvirt_private.syms b/src/libvirt_private.syms index 6f0cd9680..5b6a9d899 100644 --- a/src/libvirt_private.syms +++ b/src/libvirt_private.syms @@ -948,7 +948,6 @@ virDomainObjListCollect; virDomainObjListConvert; virDomainObjListExport; virDomainObjListFindByID; -virDomainObjListFindByIDRef; virDomainObjListFindByName; virDomainObjListFindByUUID; virDomainObjListForEach; diff --git a/src/libxl/libxl_domain.c b/src/libxl/libxl_domain.c index e76740247..6332b9ae2 100644 --- a/src/libxl/libxl_domain.c +++ b/src/libxl/libxl_domain.c @@ -443,7 +443,7 @@ libxlDomainShutdownThread(void *opaque) =20 cfg =3D libxlDriverConfigGet(driver); =20 - vm =3D virDomainObjListFindByIDRef(driver->domains, ev->domid); + vm =3D virDomainObjListFindByID(driver->domains, ev->domid); if (!vm) { VIR_INFO("Received event for unknown domain ID %d", ev->domid); goto cleanup; diff --git a/src/libxl/libxl_driver.c b/src/libxl/libxl_driver.c index 1379e9b83..5091592c6 100644 --- a/src/libxl/libxl_driver.c +++ b/src/libxl/libxl_driver.c @@ -1090,7 +1090,7 @@ libxlDomainLookupByID(virConnectPtr conn, int id) virDomainObjPtr vm; virDomainPtr dom =3D NULL; =20 - vm =3D virDomainObjListFindByIDRef(driver->domains, id); + vm =3D virDomainObjListFindByID(driver->domains, id); if (!vm) { virReportError(VIR_ERR_NO_DOMAIN, NULL); goto cleanup; diff --git a/src/lxc/lxc_driver.c b/src/lxc/lxc_driver.c index ed3f0fbc9..afa533c40 100644 --- a/src/lxc/lxc_driver.c +++ b/src/lxc/lxc_driver.c @@ -269,8 +269,7 @@ static virDomainPtr lxcDomainLookupByID(virConnectPtr c= onn, dom =3D virGetDomain(conn, vm->def->name, vm->def->uuid, vm->def->id); =20 cleanup: - if (vm) - virObjectUnlock(vm); + virDomainObjEndAPI(&vm); return dom; } =20 diff --git a/src/openvz/openvz_driver.c b/src/openvz/openvz_driver.c index 3d4e66168..5b88118de 100644 --- a/src/openvz/openvz_driver.c +++ b/src/openvz/openvz_driver.c @@ -346,7 +346,7 @@ static virDomainPtr openvzDomainLookupByID(virConnectPt= r conn, virDomainPtr dom =3D NULL; =20 openvzDriverLock(driver); - vm =3D virDomainObjListFindByIDRef(driver->domains, id); + vm =3D virDomainObjListFindByID(driver->domains, id); openvzDriverUnlock(driver); =20 if (!vm) { diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c index 4972b1fef..53e597f23 100644 --- a/src/qemu/qemu_driver.c +++ b/src/qemu/qemu_driver.c @@ -1530,7 +1530,7 @@ static virDomainPtr qemuDomainLookupByID(virConnectPt= r conn, virDomainObjPtr vm; virDomainPtr dom =3D NULL; =20 - vm =3D virDomainObjListFindByID(driver->domains, id); + vm =3D virDomainObjListFindByID(driver->domains, id); =20 if (!vm) { virReportError(VIR_ERR_NO_DOMAIN, @@ -1544,8 +1544,7 @@ static virDomainPtr qemuDomainLookupByID(virConnectPt= r conn, dom =3D virGetDomain(conn, vm->def->name, vm->def->uuid, vm->def->id); =20 cleanup: - if (vm) - virObjectUnlock(vm); + virDomainObjEndAPI(&vm); return dom; } =20 diff --git a/src/test/test_driver.c b/src/test/test_driver.c index bef15c826..f39e785a1 100644 --- a/src/test/test_driver.c +++ b/src/test/test_driver.c @@ -1713,8 +1713,7 @@ static virDomainPtr testDomainLookupByID(virConnectPt= r conn, ret =3D virGetDomain(conn, dom->def->name, dom->def->uuid, dom->def->i= d); =20 cleanup: - if (dom) - virObjectUnlock(dom); + virDomainObjEndAPI(&dom); return ret; } =20 diff --git a/src/uml/uml_driver.c b/src/uml/uml_driver.c index 91797c0eb..bbccbf5e1 100644 --- a/src/uml/uml_driver.c +++ b/src/uml/uml_driver.c @@ -1379,7 +1379,7 @@ static virDomainPtr umlDomainLookupByID(virConnectPtr= conn, virDomainPtr dom =3D NULL; =20 umlDriverLock(driver); - vm =3D virDomainObjListFindByIDRef(driver->domains, id); + vm =3D virDomainObjListFindByID(driver->domains, id); umlDriverUnlock(driver); =20 if (!vm) { diff --git a/src/vmware/vmware_driver.c b/src/vmware/vmware_driver.c index f427361d1..94c7fbadd 100644 --- a/src/vmware/vmware_driver.c +++ b/src/vmware/vmware_driver.c @@ -831,7 +831,7 @@ vmwareDomainLookupByID(virConnectPtr conn, int id) virDomainPtr dom =3D NULL; =20 vmwareDriverLock(driver); - vm =3D virDomainObjListFindByIDRef(driver->domains, id); + vm =3D virDomainObjListFindByID(driver->domains, id); vmwareDriverUnlock(driver); =20 if (!vm) { diff --git a/src/vz/vz_driver.c b/src/vz/vz_driver.c index caa0170da..850faa3b1 100644 --- a/src/vz/vz_driver.c +++ b/src/vz/vz_driver.c @@ -578,7 +578,7 @@ vzDomainLookupByID(virConnectPtr conn, int id) virDomainPtr ret =3D NULL; virDomainObjPtr dom; =20 - dom =3D virDomainObjListFindByIDRef(privconn->driver->domains, id); + dom =3D virDomainObjListFindByID(privconn->driver->domains, id); =20 if (dom =3D=3D NULL) { virReportError(VIR_ERR_NO_DOMAIN, NULL); --=20 2.13.6 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list