From nobody Wed May 14 18:45:33 2025 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 1518713797999420.97462679457533; Thu, 15 Feb 2018 08:56:37 -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 6F2BD67729; Thu, 15 Feb 2018 16:56:36 +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 36174617BE; Thu, 15 Feb 2018 16:56: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 DA1675FBDB; Thu, 15 Feb 2018 16:56:35 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.rdu2.redhat.com [10.11.54.4]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id w1FGoogQ027533 for ; Thu, 15 Feb 2018 11:50:51 -0500 Received: by smtp.corp.redhat.com (Postfix) id CDAD92024CAA; Thu, 15 Feb 2018 16:50:50 +0000 (UTC) Received: from localhost.localdomain.com (unknown [10.42.22.189]) by smtp.corp.redhat.com (Postfix) with ESMTP id 59A622024CA8; Thu, 15 Feb 2018 16:50:50 +0000 (UTC) From: =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= To: libvir-list@redhat.com Date: Thu, 15 Feb 2018 16:50:37 +0000 Message-Id: <20180215165043.4863-5-berrange@redhat.com> In-Reply-To: <20180215165043.4863-1-berrange@redhat.com> References: <20180215165043.4863-1-berrange@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.78 on 10.11.54.4 X-loop: libvir-list@redhat.com Subject: [libvirt] [PATCH v2 04/10] conf: stop passing virConnectPtr into virDomainDiskTranslateSourcePool 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: , Content-Type: text/plain; charset="utf-8" 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]); Thu, 15 Feb 2018 16:56:37 +0000 (UTC) X-ZohoMail: RSF_0 Z_629925259 SPT_0 Rather than expecting callers to pass a virConnectPtr into the virDomainDiskTranslateSourcePool() method, just acquire a connection to the storage driver when needed. Signed-off-by: Daniel P. Berrang=C3=A9 Reviewed-by: John Ferlan --- src/conf/domain_conf.c | 10 +++++++--- src/conf/domain_conf.h | 3 +-- src/qemu/qemu_conf.c | 3 +-- src/qemu/qemu_conf.h | 3 +-- src/qemu/qemu_driver.c | 39 ++++++++++++++++----------------------- src/qemu/qemu_hotplug.c | 2 +- src/qemu/qemu_process.c | 4 ++-- tests/qemuxml2argvtest.c | 5 +++++ 8 files changed, 34 insertions(+), 35 deletions(-) diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c index 4f50547580..613e34f8c4 100644 --- a/src/conf/domain_conf.c +++ b/src/conf/domain_conf.c @@ -29068,9 +29068,9 @@ virDomainDiskTranslateSourcePoolAuth(virDomainDiskD= efPtr def, =20 =20 int -virDomainDiskTranslateSourcePool(virConnectPtr conn, - virDomainDiskDefPtr def) +virDomainDiskTranslateSourcePool(virDomainDiskDefPtr def) { + virConnectPtr conn =3D NULL; virStoragePoolDefPtr pooldef =3D NULL; virStoragePoolPtr pool =3D NULL; virStorageVolPtr vol =3D NULL; @@ -29084,9 +29084,12 @@ virDomainDiskTranslateSourcePool(virConnectPtr con= n, if (!def->src->srcpool) return 0; =20 - if (!(pool =3D virStoragePoolLookupByName(conn, def->src->srcpool->poo= l))) + if (!(conn =3D virGetConnectStorage())) return -1; =20 + if (!(pool =3D virStoragePoolLookupByName(conn, def->src->srcpool->poo= l))) + goto cleanup; + if (virStoragePoolIsActive(pool) !=3D 1) { virReportError(VIR_ERR_CONFIG_UNSUPPORTED, _("storage pool '%s' containing volume '%s' " @@ -29230,6 +29233,7 @@ virDomainDiskTranslateSourcePool(virConnectPtr conn, =20 ret =3D 0; cleanup: + virObjectUnref(conn); virObjectUnref(pool); virObjectUnref(vol); VIR_FREE(poolxml); diff --git a/src/conf/domain_conf.h b/src/conf/domain_conf.h index 7b450ce8f1..8be08bc9b3 100644 --- a/src/conf/domain_conf.h +++ b/src/conf/domain_conf.h @@ -3514,8 +3514,7 @@ virDomainNetResolveActualType(virDomainNetDefPtr ifac= e) ATTRIBUTE_NONNULL(1); =20 =20 -int virDomainDiskTranslateSourcePool(virConnectPtr conn, - virDomainDiskDefPtr def); +int virDomainDiskTranslateSourcePool(virDomainDiskDefPtr def); =20 =20 #endif /* __DOMAIN_CONF_H */ diff --git a/src/qemu/qemu_conf.c b/src/qemu/qemu_conf.c index af503d31cb..36cf3a281c 100644 --- a/src/qemu/qemu_conf.c +++ b/src/qemu/qemu_conf.c @@ -1631,8 +1631,7 @@ int qemuDriverAllocateID(virQEMUDriverPtr driver) =20 =20 int -qemuTranslateSnapshotDiskSourcePool(virConnectPtr conn ATTRIBUTE_UNUSED, - virDomainSnapshotDiskDefPtr def) +qemuTranslateSnapshotDiskSourcePool(virDomainSnapshotDiskDefPtr def) { if (def->src->type !=3D VIR_STORAGE_TYPE_VOLUME) return 0; diff --git a/src/qemu/qemu_conf.h b/src/qemu/qemu_conf.h index a553e30e2e..83fd452827 100644 --- a/src/qemu/qemu_conf.h +++ b/src/qemu/qemu_conf.h @@ -349,8 +349,7 @@ int qemuSetUnprivSGIO(virDomainDeviceDefPtr dev); int qemuDriverAllocateID(virQEMUDriverPtr driver); virDomainXMLOptionPtr virQEMUDriverCreateXMLConf(virQEMUDriverPtr driver); =20 -int qemuTranslateSnapshotDiskSourcePool(virConnectPtr conn, - virDomainSnapshotDiskDefPtr def); +int qemuTranslateSnapshotDiskSourcePool(virDomainSnapshotDiskDefPtr def); =20 char * qemuGetBaseHugepagePath(virHugeTLBFSPtr hugepage); char * qemuGetDomainHugepagePath(const virDomainDef *def, diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c index 134deb05a0..031bdeb5f6 100644 --- a/src/qemu/qemu_driver.c +++ b/src/qemu/qemu_driver.c @@ -7871,8 +7871,7 @@ qemuDomainDetachDeviceLive(virDomainObjPtr vm, } =20 static int -qemuDomainChangeDiskLive(virConnectPtr conn, - virDomainObjPtr vm, +qemuDomainChangeDiskLive(virDomainObjPtr vm, virDomainDeviceDefPtr dev, virQEMUDriverPtr driver, bool force) @@ -7881,7 +7880,7 @@ qemuDomainChangeDiskLive(virConnectPtr conn, virDomainDiskDefPtr orig_disk =3D NULL; int ret =3D -1; =20 - if (virDomainDiskTranslateSourcePool(conn, disk) < 0) + if (virDomainDiskTranslateSourcePool(disk) < 0) goto cleanup; =20 if (qemuDomainDetermineDiskChain(driver, vm, disk, false, true) < 0) @@ -7932,8 +7931,7 @@ qemuDomainChangeDiskLive(virConnectPtr conn, } =20 static int -qemuDomainUpdateDeviceLive(virConnectPtr conn, - virDomainObjPtr vm, +qemuDomainUpdateDeviceLive(virDomainObjPtr vm, virDomainDeviceDefPtr dev, virDomainPtr dom, bool force) @@ -7944,7 +7942,7 @@ qemuDomainUpdateDeviceLive(virConnectPtr conn, switch ((virDomainDeviceType) dev->type) { case VIR_DOMAIN_DEVICE_DISK: qemuDomainObjCheckDiskTaint(driver, vm, dev->data.disk, NULL); - ret =3D qemuDomainChangeDiskLive(conn, vm, dev, driver, force); + ret =3D qemuDomainChangeDiskLive(vm, dev, driver, force); break; case VIR_DOMAIN_DEVICE_GRAPHICS: ret =3D qemuDomainChangeGraphics(driver, vm, dev->data.graphics); @@ -7986,7 +7984,6 @@ qemuDomainUpdateDeviceLive(virConnectPtr conn, static int qemuDomainAttachDeviceConfig(virDomainDefPtr vmdef, virDomainDeviceDefPtr dev, - virConnectPtr conn, virCapsPtr caps, unsigned int parse_flags, virDomainXMLOptionPtr xmlopt) @@ -8008,7 +8005,7 @@ qemuDomainAttachDeviceConfig(virDomainDefPtr vmdef, _("target %s already exists"), disk->dst); return -1; } - if (virDomainDiskTranslateSourcePool(conn, disk) < 0) + if (virDomainDiskTranslateSourcePool(disk) < 0) return -1; if (qemuCheckDiskConfig(disk, NULL) < 0) return -1; @@ -8494,7 +8491,7 @@ qemuDomainAttachDeviceLiveAndConfig(virConnectPtr con= n, =20 if (virDomainDefCompatibleDevice(vmdef, dev) < 0) goto cleanup; - if ((ret =3D qemuDomainAttachDeviceConfig(vmdef, dev, conn, caps, + if ((ret =3D qemuDomainAttachDeviceConfig(vmdef, dev, caps, parse_flags, driver->xmlopt)) < 0) goto cleanup; @@ -8654,7 +8651,7 @@ static int qemuDomainUpdateDeviceFlags(virDomainPtr d= om, if (virDomainDefCompatibleDevice(vm->def, dev_copy) < 0) goto endjob; =20 - if ((ret =3D qemuDomainUpdateDeviceLive(dom->conn, vm, dev_copy, d= om, force)) < 0) + if ((ret =3D qemuDomainUpdateDeviceLive(vm, dev_copy, dom, force))= < 0) goto endjob; /* * update domain status forcibly because the domain status may be @@ -14229,8 +14226,7 @@ qemuDomainSnapshotPrepareDiskExternalActive(virDoma= inSnapshotDiskDefPtr snapdisk =20 =20 static int -qemuDomainSnapshotPrepareDiskExternal(virConnectPtr conn, - virDomainDiskDefPtr disk, +qemuDomainSnapshotPrepareDiskExternal(virDomainDiskDefPtr disk, virDomainSnapshotDiskDefPtr snapdisk, bool active, bool reuse) @@ -14238,11 +14234,11 @@ qemuDomainSnapshotPrepareDiskExternal(virConnectP= tr conn, int ret =3D -1; struct stat st; =20 - if (qemuTranslateSnapshotDiskSourcePool(conn, snapdisk) < 0) + if (qemuTranslateSnapshotDiskSourcePool(snapdisk) < 0) return -1; =20 if (!active) { - if (virDomainDiskTranslateSourcePool(conn, disk) < 0) + if (virDomainDiskTranslateSourcePool(disk) < 0) return -1; =20 if (qemuDomainSnapshotPrepareDiskExternalInactive(snapdisk, disk) = < 0) @@ -14284,8 +14280,7 @@ qemuDomainSnapshotPrepareDiskExternal(virConnectPtr= conn, =20 =20 static int -qemuDomainSnapshotPrepareDiskInternal(virConnectPtr conn, - virDomainDiskDefPtr disk, +qemuDomainSnapshotPrepareDiskInternal(virDomainDiskDefPtr disk, bool active) { int actualType; @@ -14294,7 +14289,7 @@ qemuDomainSnapshotPrepareDiskInternal(virConnectPtr= conn, if (active) return 0; =20 - if (virDomainDiskTranslateSourcePool(conn, disk) < 0) + if (virDomainDiskTranslateSourcePool(disk) < 0) return -1; =20 actualType =3D virStorageSourceGetActualType(disk->src); @@ -14343,8 +14338,7 @@ qemuDomainSnapshotPrepareDiskInternal(virConnectPtr= conn, =20 =20 static int -qemuDomainSnapshotPrepare(virConnectPtr conn, - virDomainObjPtr vm, +qemuDomainSnapshotPrepare(virDomainObjPtr vm, virDomainSnapshotDefPtr def, unsigned int *flags) { @@ -14385,7 +14379,7 @@ qemuDomainSnapshotPrepare(virConnectPtr conn, goto cleanup; } =20 - if (qemuDomainSnapshotPrepareDiskInternal(conn, dom_disk, + if (qemuDomainSnapshotPrepareDiskInternal(dom_disk, active) < 0) goto cleanup; =20 @@ -14414,7 +14408,7 @@ qemuDomainSnapshotPrepare(virConnectPtr conn, goto cleanup; } =20 - if (qemuDomainSnapshotPrepareDiskExternal(conn, dom_disk, disk, + if (qemuDomainSnapshotPrepareDiskExternal(dom_disk, disk, active, reuse) < 0) goto cleanup; =20 @@ -15062,7 +15056,6 @@ qemuDomainSnapshotCreateXML(virDomainPtr domain, const char *xmlDesc, unsigned int flags) { - virConnectPtr conn =3D domain->conn; virQEMUDriverPtr driver =3D domain->conn->privateData; virDomainObjPtr vm =3D NULL; char *xml =3D NULL; @@ -15241,7 +15234,7 @@ qemuDomainSnapshotCreateXML(virDomainPtr domain, } if (virDomainSnapshotAlignDisks(def, align_location, align_match) < 0 || - qemuDomainSnapshotPrepare(conn, vm, def, &flags) < 0) + qemuDomainSnapshotPrepare(vm, def, &flags) < 0) goto endjob; } =20 diff --git a/src/qemu/qemu_hotplug.c b/src/qemu/qemu_hotplug.c index c9868de778..ee8b53b719 100644 --- a/src/qemu/qemu_hotplug.c +++ b/src/qemu/qemu_hotplug.c @@ -713,7 +713,7 @@ qemuDomainAttachDeviceDiskLive(virConnectPtr conn, goto cleanup; } =20 - if (virDomainDiskTranslateSourcePool(conn, disk) < 0) + if (virDomainDiskTranslateSourcePool(disk) < 0) goto cleanup; =20 if (qemuAddSharedDevice(driver, dev, vm->def->name) < 0) diff --git a/src/qemu/qemu_process.c b/src/qemu/qemu_process.c index d0a25cecb9..586d11bba3 100644 --- a/src/qemu/qemu_process.c +++ b/src/qemu/qemu_process.c @@ -5603,7 +5603,7 @@ qemuProcessPrepareDomainStorage(virConnectPtr conn, size_t idx =3D i - 1; virDomainDiskDefPtr disk =3D vm->def->disks[idx]; =20 - if (virDomainDiskTranslateSourcePool(conn, disk) < 0) { + if (virDomainDiskTranslateSourcePool(disk) < 0) { if (qemuDomainCheckDiskStartupPolicy(driver, vm, idx, cold_boo= t) < 0) return -1; =20 @@ -7362,7 +7362,7 @@ qemuProcessReconnect(void *opaque) virDomainDiskDefPtr disk =3D obj->def->disks[i]; virDomainDeviceDef dev; =20 - if (virDomainDiskTranslateSourcePool(conn, disk) < 0) + if (virDomainDiskTranslateSourcePool(disk) < 0) goto error; =20 /* backing chains need to be refreshed only if they could change */ diff --git a/tests/qemuxml2argvtest.c b/tests/qemuxml2argvtest.c index b341467143..fa261fc805 100644 --- a/tests/qemuxml2argvtest.c +++ b/tests/qemuxml2argvtest.c @@ -429,6 +429,9 @@ testCompareXMLToArgv(const void *data) conn->secretDriver =3D &fakeSecretDriver; conn->storageDriver =3D &fakeStorageDriver; =20 + virSetConnectSecret(conn); + virSetConnectStorage(conn); + if (virQEMUCapsGet(info->qemuCaps, QEMU_CAPS_MONITOR_JSON)) flags |=3D FLAG_JSON; =20 @@ -536,6 +539,8 @@ testCompareXMLToArgv(const void *data) virDomainChrSourceDefClear(&monitor_chr); virCommandFree(cmd); virObjectUnref(vm); + virSetConnectSecret(NULL); + virSetConnectStorage(NULL); virObjectUnref(conn); VIR_FREE(migrateURI); VIR_FREE(xml); --=20 2.14.3 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list