From nobody Wed May 14 18:28:56 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 1518780174395764.1417244116171; Fri, 16 Feb 2018 03:22:54 -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 7A7A581DF0; Fri, 16 Feb 2018 11:22:52 +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 53EB05D756; Fri, 16 Feb 2018 11:22:52 +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 1A4C24A474; Fri, 16 Feb 2018 11:22:52 +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 w1GBMVg9012935 for ; Fri, 16 Feb 2018 06:22:31 -0500 Received: by smtp.corp.redhat.com (Postfix) id 644B62024CA1; Fri, 16 Feb 2018 11:22:31 +0000 (UTC) Received: from t460.redhat.com (unknown [10.33.36.60]) by smtp.corp.redhat.com (Postfix) with ESMTP id 632A92026DFD; Fri, 16 Feb 2018 11:22:30 +0000 (UTC) From: =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= To: libvir-list@redhat.com Date: Fri, 16 Feb 2018 11:22:17 +0000 Message-Id: <20180216112222.26572-6-berrange@redhat.com> In-Reply-To: <20180216112222.26572-1-berrange@redhat.com> References: <20180216112222.26572-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 v3 05/10] qemu: don't pass virConnectPtr around for secrets 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.15 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.25]); Fri, 16 Feb 2018 11:22:53 +0000 (UTC) X-ZohoMail: RSF_0 Z_629925259 SPT_0 During domain startup there are many places where we need to acquire secrets. Currently code passes around a virConnectPtr, except in the places where we pass in NULL. So there are a few codepaths where ability to start guests using secrets will fail. Change to acquire a handle to the secret driver when needed. Reviewed-by: John Ferlan Signed-off-by: Daniel P. Berrang=C3=A9 --- src/qemu/qemu_domain.c | 111 ++++++++++++++++++++++--------------------= ---- src/qemu/qemu_domain.h | 21 ++++----- src/qemu/qemu_driver.c | 18 ++++---- src/qemu/qemu_hotplug.c | 64 +++++++++++--------------- src/qemu/qemu_hotplug.h | 15 +++---- src/qemu/qemu_migration.c | 10 ++--- src/qemu/qemu_process.c | 40 +++++------------ tests/qemuhotplugtest.c | 4 +- 8 files changed, 117 insertions(+), 166 deletions(-) diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c index 178ec24ae7..2182b7927d 100644 --- a/src/qemu/qemu_domain.c +++ b/src/qemu/qemu_domain.c @@ -1151,7 +1151,6 @@ qemuDomainChrSourcePrivateDispose(void *obj) =20 =20 /* qemuDomainSecretPlainSetup: - * @conn: Pointer to connection * @secinfo: Pointer to secret info * @usageType: The virSecretUsageType * @username: username to use for authentication (may be NULL) @@ -1162,24 +1161,33 @@ qemuDomainChrSourcePrivateDispose(void *obj) * Returns 0 on success, -1 on failure with error message */ static int -qemuDomainSecretPlainSetup(virConnectPtr conn, - qemuDomainSecretInfoPtr secinfo, +qemuDomainSecretPlainSetup(qemuDomainSecretInfoPtr secinfo, virSecretUsageType usageType, const char *username, virSecretLookupTypeDefPtr seclookupdef) { + virConnectPtr conn; + int ret =3D -1; + + conn =3D virGetConnectSecret(); + if (!conn) + return -1; + secinfo->type =3D VIR_DOMAIN_SECRET_INFO_TYPE_PLAIN; if (VIR_STRDUP(secinfo->s.plain.username, username) < 0) - return -1; + goto cleanup; =20 - return virSecretGetSecretString(conn, seclookupdef, usageType, - &secinfo->s.plain.secret, - &secinfo->s.plain.secretlen); + ret =3D virSecretGetSecretString(conn, seclookupdef, usageType, + &secinfo->s.plain.secret, + &secinfo->s.plain.secretlen); + + cleanup: + virObjectUnref(conn); + return ret; } =20 =20 /* qemuDomainSecretAESSetup: - * @conn: Pointer to connection * @priv: pointer to domain private object * @secinfo: Pointer to secret info * @srcalias: Alias of the disk/hostdev used to generate the secret alias @@ -1193,8 +1201,7 @@ qemuDomainSecretPlainSetup(virConnectPtr conn, * Returns 0 on success, -1 on failure with error message */ static int -qemuDomainSecretAESSetup(virConnectPtr conn, - qemuDomainObjPrivatePtr priv, +qemuDomainSecretAESSetup(qemuDomainObjPrivatePtr priv, qemuDomainSecretInfoPtr secinfo, const char *srcalias, virSecretUsageType usageType, @@ -1202,6 +1209,7 @@ qemuDomainSecretAESSetup(virConnectPtr conn, virSecretLookupTypeDefPtr seclookupdef, bool isLuks) { + virConnectPtr conn; int ret =3D -1; uint8_t *raw_iv =3D NULL; size_t ivlen =3D QEMU_DOMAIN_AES_IV_LEN; @@ -1210,16 +1218,20 @@ qemuDomainSecretAESSetup(virConnectPtr conn, uint8_t *ciphertext =3D NULL; size_t ciphertextlen =3D 0; =20 + conn =3D virGetConnectSecret(); + if (!conn) + return -1; + secinfo->type =3D VIR_DOMAIN_SECRET_INFO_TYPE_AES; if (VIR_STRDUP(secinfo->s.aes.username, username) < 0) - return -1; + goto cleanup; =20 if (!(secinfo->s.aes.alias =3D qemuDomainGetSecretAESAlias(srcalias, i= sLuks))) - return -1; + goto cleanup; =20 /* Create a random initialization vector */ if (!(raw_iv =3D virCryptoGenerateRandom(ivlen))) - return -1; + goto cleanup; =20 /* Encode the IV and save that since qemu will need it */ if (!(secinfo->s.aes.iv =3D virStringEncodeBase64(raw_iv, ivlen))) @@ -1250,13 +1262,12 @@ qemuDomainSecretAESSetup(virConnectPtr conn, VIR_DISPOSE_N(raw_iv, ivlen); VIR_DISPOSE_N(secret, secretlen); VIR_DISPOSE_N(ciphertext, ciphertextlen); - + virObjectUnref(conn); return ret; } =20 =20 /* qemuDomainSecretSetup: - * @conn: Pointer to connection * @priv: pointer to domain private object * @secinfo: Pointer to secret info * @srcalias: Alias of the disk/hostdev used to generate the secret alias @@ -1273,8 +1284,7 @@ qemuDomainSecretAESSetup(virConnectPtr conn, * Returns 0 on success, -1 on failure */ static int -qemuDomainSecretSetup(virConnectPtr conn, - qemuDomainObjPrivatePtr priv, +qemuDomainSecretSetup(qemuDomainObjPrivatePtr priv, qemuDomainSecretInfoPtr secinfo, const char *srcalias, virSecretUsageType usageType, @@ -1291,12 +1301,12 @@ qemuDomainSecretSetup(virConnectPtr conn, (usageType =3D=3D VIR_SECRET_USAGE_TYPE_ISCSI && iscsiHasPS) || usageType =3D=3D VIR_SECRET_USAGE_TYPE_VOLUME || usageType =3D=3D VIR_SECRET_USAGE_TYPE_TLS)) { - if (qemuDomainSecretAESSetup(conn, priv, secinfo, srcalias, + if (qemuDomainSecretAESSetup(priv, secinfo, srcalias, usageType, username, seclookupdef, isLuks) < 0) return -1; } else { - if (qemuDomainSecretPlainSetup(conn, secinfo, usageType, + if (qemuDomainSecretPlainSetup(secinfo, usageType, username, seclookupdef) < 0) return -1; } @@ -1305,7 +1315,6 @@ qemuDomainSecretSetup(virConnectPtr conn, =20 =20 /* qemuDomainSecretInfoNew: - * @conn: Pointer to connection * @priv: pointer to domain private object * @srcAlias: Alias base to use for TLS object * @usageType: Secret usage type @@ -1319,8 +1328,7 @@ qemuDomainSecretSetup(virConnectPtr conn, * to eventually free @secinfo. */ static qemuDomainSecretInfoPtr -qemuDomainSecretInfoNew(virConnectPtr conn, - qemuDomainObjPrivatePtr priv, +qemuDomainSecretInfoNew(qemuDomainObjPrivatePtr priv, const char *srcAlias, virSecretUsageType usageType, const char *username, @@ -1332,7 +1340,7 @@ qemuDomainSecretInfoNew(virConnectPtr conn, if (VIR_ALLOC(secinfo) < 0) return NULL; =20 - if (qemuDomainSecretSetup(conn, priv, secinfo, srcAlias, usageType, + if (qemuDomainSecretSetup(priv, secinfo, srcAlias, usageType, username, lookupDef, isLuks) < 0) goto error; =20 @@ -1352,7 +1360,6 @@ qemuDomainSecretInfoNew(virConnectPtr conn, =20 /** * qemuDomainSecretInfoTLSNew: - * @conn: Pointer to connection * @priv: pointer to domain private object * @srcAlias: Alias base to use for TLS object * @secretUUID: Provide a secretUUID value to look up/create the secretInfo @@ -1363,8 +1370,7 @@ qemuDomainSecretInfoNew(virConnectPtr conn, * Returns qemuDomainSecretInfoPtr or NULL on error. */ qemuDomainSecretInfoPtr -qemuDomainSecretInfoTLSNew(virConnectPtr conn, - qemuDomainObjPrivatePtr priv, +qemuDomainSecretInfoTLSNew(qemuDomainObjPrivatePtr priv, const char *srcAlias, const char *secretUUID) { @@ -1378,7 +1384,7 @@ qemuDomainSecretInfoTLSNew(virConnectPtr conn, } seclookupdef.type =3D VIR_SECRET_LOOKUP_TYPE_UUID; =20 - return qemuDomainSecretInfoNew(conn, priv, srcAlias, + return qemuDomainSecretInfoNew(priv, srcAlias, VIR_SECRET_USAGE_TYPE_TLS, NULL, &seclookupdef, false); } @@ -1440,7 +1446,6 @@ qemuDomainDiskHasEncryptionSecret(virStorageSourcePtr= src) =20 /** * qemuDomainSecretStorageSourcePrepare: - * @conn: connection object - for secret lookup * @priv: domain private object * @src: storage source struct to setup * @authalias: prefix of the alias for secret holding authentication data @@ -1454,8 +1459,7 @@ qemuDomainDiskHasEncryptionSecret(virStorageSourcePtr= src) * Returns 0 on success; -1 on error while reporting an libvirt error. */ static int -qemuDomainSecretStorageSourcePrepare(virConnectPtr conn, - qemuDomainObjPrivatePtr priv, +qemuDomainSecretStorageSourcePrepare(qemuDomainObjPrivatePtr priv, virStorageSourcePtr src, const char *authalias, const char *encalias) @@ -1479,7 +1483,7 @@ qemuDomainSecretStorageSourcePrepare(virConnectPtr co= nn, usageType =3D VIR_SECRET_USAGE_TYPE_CEPH; =20 if (!(srcPriv->secinfo =3D - qemuDomainSecretInfoNew(conn, priv, authalias, + qemuDomainSecretInfoNew(priv, authalias, usageType, src->auth->username, &src->auth->seclookupdef, false))) return -1; @@ -1487,7 +1491,7 @@ qemuDomainSecretStorageSourcePrepare(virConnectPtr co= nn, =20 if (hasEnc) { if (!(srcPriv->encinfo =3D - qemuDomainSecretInfoNew(conn, priv, encalias, + qemuDomainSecretInfoNew(priv, encalias, VIR_SECRET_USAGE_TYPE_VOLUME, NULL, &src->encryption->secrets[0]->secloo= kupdef, true))) @@ -1499,7 +1503,6 @@ qemuDomainSecretStorageSourcePrepare(virConnectPtr co= nn, =20 =20 /* qemuDomainSecretDiskPrepare: - * @conn: Pointer to connection * @priv: pointer to domain private object * @disk: Pointer to a disk definition * @@ -1509,11 +1512,10 @@ qemuDomainSecretStorageSourcePrepare(virConnectPtr = conn, */ =20 static int -qemuDomainSecretDiskPrepare(virConnectPtr conn, - qemuDomainObjPrivatePtr priv, +qemuDomainSecretDiskPrepare(qemuDomainObjPrivatePtr priv, virDomainDiskDefPtr disk) { - return qemuDomainSecretStorageSourcePrepare(conn, priv, disk->src, + return qemuDomainSecretStorageSourcePrepare(priv, disk->src, disk->info.alias, disk->info.alias); } @@ -1543,7 +1545,6 @@ qemuDomainSecretHostdevDestroy(virDomainHostdevDefPtr= hostdev) =20 =20 /* qemuDomainSecretHostdevPrepare: - * @conn: Pointer to connection * @priv: pointer to domain private object * @hostdev: Pointer to a hostdev definition * @@ -1552,8 +1553,7 @@ qemuDomainSecretHostdevDestroy(virDomainHostdevDefPtr= hostdev) * Returns 0 on success, -1 on failure */ int -qemuDomainSecretHostdevPrepare(virConnectPtr conn, - qemuDomainObjPrivatePtr priv, +qemuDomainSecretHostdevPrepare(qemuDomainObjPrivatePtr priv, virDomainHostdevDefPtr hostdev) { if (virHostdevIsSCSIDevice(hostdev)) { @@ -1571,7 +1571,7 @@ qemuDomainSecretHostdevPrepare(virConnectPtr conn, srcPriv =3D QEMU_DOMAIN_STORAGE_SOURCE_PRIVATE(src); =20 if (!(srcPriv->secinfo =3D - qemuDomainSecretInfoNew(conn, priv, hostdev->info->alias, + qemuDomainSecretInfoNew(priv, hostdev->info->alias, VIR_SECRET_USAGE_TYPE_ISCSI, src->auth->username, &src->auth->seclookupdef, @@ -1603,7 +1603,6 @@ qemuDomainSecretChardevDestroy(virDomainChrSourceDefP= tr dev) =20 =20 /* qemuDomainSecretChardevPrepare: - * @conn: Pointer to connection * @cfg: Pointer to driver config object * @priv: pointer to domain private object * @chrAlias: Alias of the chr device @@ -1615,8 +1614,7 @@ qemuDomainSecretChardevDestroy(virDomainChrSourceDefP= tr dev) * Returns 0 on success, -1 on failure */ int -qemuDomainSecretChardevPrepare(virConnectPtr conn, - virQEMUDriverConfigPtr cfg, +qemuDomainSecretChardevPrepare(virQEMUDriverConfigPtr cfg, qemuDomainObjPrivatePtr priv, const char *chrAlias, virDomainChrSourceDefPtr dev) @@ -1635,7 +1633,7 @@ qemuDomainSecretChardevPrepare(virConnectPtr conn, return -1; =20 chrSourcePriv->secinfo =3D - qemuDomainSecretInfoTLSNew(conn, priv, charAlias, + qemuDomainSecretInfoTLSNew(priv, charAlias, cfg->chardevTLSx509secretUUID); VIR_FREE(charAlias); =20 @@ -1693,7 +1691,6 @@ qemuDomainSecretDestroy(virDomainObjPtr vm) =20 =20 /* qemuDomainSecretPrepare: - * @conn: Pointer to connection * @driver: Pointer to driver object * @vm: Domain object * @@ -1706,8 +1703,7 @@ qemuDomainSecretDestroy(virDomainObjPtr vm) * Returns 0 on success, -1 on failure with error message set */ int -qemuDomainSecretPrepare(virConnectPtr conn, - virQEMUDriverPtr driver, +qemuDomainSecretPrepare(virQEMUDriverPtr driver, virDomainObjPtr vm) { qemuDomainObjPrivatePtr priv =3D vm->privateData; @@ -1718,34 +1714,34 @@ qemuDomainSecretPrepare(virConnectPtr conn, /* disk secrets are prepared when preparing disks */ =20 for (i =3D 0; i < vm->def->nhostdevs; i++) { - if (qemuDomainSecretHostdevPrepare(conn, priv, + if (qemuDomainSecretHostdevPrepare(priv, vm->def->hostdevs[i]) < 0) goto cleanup; } =20 for (i =3D 0; i < vm->def->nserials; i++) { - if (qemuDomainSecretChardevPrepare(conn, cfg, priv, + if (qemuDomainSecretChardevPrepare(cfg, priv, vm->def->serials[i]->info.alias, vm->def->serials[i]->source) < = 0) goto cleanup; } =20 for (i =3D 0; i < vm->def->nparallels; i++) { - if (qemuDomainSecretChardevPrepare(conn, cfg, priv, + if (qemuDomainSecretChardevPrepare(cfg, priv, vm->def->parallels[i]->info.ali= as, vm->def->parallels[i]->source) = < 0) goto cleanup; } =20 for (i =3D 0; i < vm->def->nchannels; i++) { - if (qemuDomainSecretChardevPrepare(conn, cfg, priv, + if (qemuDomainSecretChardevPrepare(cfg, priv, vm->def->channels[i]->info.alia= s, vm->def->channels[i]->source) <= 0) goto cleanup; } =20 for (i =3D 0; i < vm->def->nconsoles; i++) { - if (qemuDomainSecretChardevPrepare(conn, cfg, priv, + if (qemuDomainSecretChardevPrepare(cfg, priv, vm->def->consoles[i]->info.alia= s, vm->def->consoles[i]->source) <= 0) goto cleanup; @@ -1754,21 +1750,21 @@ qemuDomainSecretPrepare(virConnectPtr conn, for (i =3D 0; i < vm->def->nsmartcards; i++) if (vm->def->smartcards[i]->type =3D=3D VIR_DOMAIN_SMARTCARD_TYPE_PASSTHROUGH && - qemuDomainSecretChardevPrepare(conn, cfg, priv, + qemuDomainSecretChardevPrepare(cfg, priv, vm->def->smartcards[i]->info.al= ias, vm->def->smartcards[i]->data.pa= ssthru) < 0) goto cleanup; =20 for (i =3D 0; i < vm->def->nrngs; i++) { if (vm->def->rngs[i]->backend =3D=3D VIR_DOMAIN_RNG_BACKEND_EGD && - qemuDomainSecretChardevPrepare(conn, cfg, priv, + qemuDomainSecretChardevPrepare(cfg, priv, vm->def->rngs[i]->info.alias, vm->def->rngs[i]->source.charde= v) < 0) goto cleanup; } =20 for (i =3D 0; i < vm->def->nredirdevs; i++) { - if (qemuDomainSecretChardevPrepare(conn, cfg, priv, + if (qemuDomainSecretChardevPrepare(cfg, priv, vm->def->redirdevs[i]->info.ali= as, vm->def->redirdevs[i]->source) = < 0) goto cleanup; @@ -11459,15 +11455,14 @@ qemuDomainCheckMigrationCapabilities(virQEMUDrive= rPtr driver, =20 =20 int -qemuDomainPrepareDiskSource(virConnectPtr conn, - virDomainDiskDefPtr disk, +qemuDomainPrepareDiskSource(virDomainDiskDefPtr disk, qemuDomainObjPrivatePtr priv, virQEMUDriverConfigPtr cfg) { if (qemuDomainPrepareDiskSourceTLS(disk->src, cfg) < 0) return -1; =20 - if (qemuDomainSecretDiskPrepare(conn, priv, disk) < 0) + if (qemuDomainSecretDiskPrepare(priv, disk) < 0) return -1; =20 if (disk->src->type =3D=3D VIR_STORAGE_TYPE_NETWORK && diff --git a/src/qemu/qemu_domain.h b/src/qemu/qemu_domain.h index f3ec5d8042..6d3e6eb5e3 100644 --- a/src/qemu/qemu_domain.h +++ b/src/qemu/qemu_domain.h @@ -836,37 +836,33 @@ bool qemuDomainDiskHasEncryptionSecret(virStorageSour= cePtr src) ATTRIBUTE_NONNULL(1); =20 qemuDomainSecretInfoPtr -qemuDomainSecretInfoTLSNew(virConnectPtr conn, - qemuDomainObjPrivatePtr priv, +qemuDomainSecretInfoTLSNew(qemuDomainObjPrivatePtr priv, const char *srcAlias, const char *secretUUID); =20 void qemuDomainSecretHostdevDestroy(virDomainHostdevDefPtr disk) ATTRIBUTE_NONNULL(1); =20 -int qemuDomainSecretHostdevPrepare(virConnectPtr conn, - qemuDomainObjPrivatePtr priv, +int qemuDomainSecretHostdevPrepare(qemuDomainObjPrivatePtr priv, virDomainHostdevDefPtr hostdev) - ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2) ATTRIBUTE_NONNULL(3); + ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2); =20 void qemuDomainSecretChardevDestroy(virDomainChrSourceDefPtr dev) ATTRIBUTE_NONNULL(1); =20 -int qemuDomainSecretChardevPrepare(virConnectPtr conn, - virQEMUDriverConfigPtr cfg, +int qemuDomainSecretChardevPrepare(virQEMUDriverConfigPtr cfg, qemuDomainObjPrivatePtr priv, const char *chrAlias, virDomainChrSourceDefPtr dev) ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2) ATTRIBUTE_NONNULL(3) - ATTRIBUTE_NONNULL(4) ATTRIBUTE_NONNULL(5); + ATTRIBUTE_NONNULL(4); =20 void qemuDomainSecretDestroy(virDomainObjPtr vm) ATTRIBUTE_NONNULL(1); =20 -int qemuDomainSecretPrepare(virConnectPtr conn, - virQEMUDriverPtr driver, +int qemuDomainSecretPrepare(virQEMUDriverPtr driver, virDomainObjPtr vm) - ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2) ATTRIBUTE_NONNULL(3); + ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2); =20 int qemuDomainDefValidateDiskLunSource(const virStorageSource *src) ATTRIBUTE_NONNULL(1); @@ -1000,8 +996,7 @@ qemuDomainCheckMigrationCapabilities(virQEMUDriverPtr = driver, qemuDomainAsyncJob asyncJob); =20 int -qemuDomainPrepareDiskSource(virConnectPtr conn, - virDomainDiskDefPtr disk, +qemuDomainPrepareDiskSource(virDomainDiskDefPtr disk, qemuDomainObjPrivatePtr priv, virQEMUDriverConfigPtr cfg); =20 diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c index 031bdeb5f6..83ad08bd4f 100644 --- a/src/qemu/qemu_driver.c +++ b/src/qemu/qemu_driver.c @@ -7635,7 +7635,6 @@ qemuDomainUndefine(virDomainPtr dom) static int qemuDomainAttachDeviceLive(virDomainObjPtr vm, virDomainDeviceDefPtr dev, - virConnectPtr conn, virQEMUDriverPtr driver) { int ret =3D -1; @@ -7644,7 +7643,7 @@ qemuDomainAttachDeviceLive(virDomainObjPtr vm, switch ((virDomainDeviceType) dev->type) { case VIR_DOMAIN_DEVICE_DISK: qemuDomainObjCheckDiskTaint(driver, vm, dev->data.disk, NULL); - ret =3D qemuDomainAttachDeviceDiskLive(conn, driver, vm, dev); + ret =3D qemuDomainAttachDeviceDiskLive(driver, vm, dev); if (!ret) { alias =3D dev->data.disk->info.alias; dev->data.disk =3D NULL; @@ -7677,7 +7676,7 @@ qemuDomainAttachDeviceLive(virDomainObjPtr vm, =20 case VIR_DOMAIN_DEVICE_HOSTDEV: qemuDomainObjCheckHostdevTaint(driver, vm, dev->data.hostdev, NULL= ); - ret =3D qemuDomainAttachHostDevice(conn, driver, vm, + ret =3D qemuDomainAttachHostDevice(driver, vm, dev->data.hostdev); if (!ret) { alias =3D dev->data.hostdev->info->alias; @@ -7686,7 +7685,7 @@ qemuDomainAttachDeviceLive(virDomainObjPtr vm, break; =20 case VIR_DOMAIN_DEVICE_REDIRDEV: - ret =3D qemuDomainAttachRedirdevDevice(conn, driver, vm, + ret =3D qemuDomainAttachRedirdevDevice(driver, vm, dev->data.redirdev); if (!ret) { alias =3D dev->data.redirdev->info.alias; @@ -7695,7 +7694,7 @@ qemuDomainAttachDeviceLive(virDomainObjPtr vm, break; =20 case VIR_DOMAIN_DEVICE_CHR: - ret =3D qemuDomainAttachChrDevice(conn, driver, vm, + ret =3D qemuDomainAttachChrDevice(driver, vm, dev->data.chr); if (!ret) { alias =3D dev->data.chr->info.alias; @@ -7704,7 +7703,7 @@ qemuDomainAttachDeviceLive(virDomainObjPtr vm, break; =20 case VIR_DOMAIN_DEVICE_RNG: - ret =3D qemuDomainAttachRNGDevice(conn, driver, vm, + ret =3D qemuDomainAttachRNGDevice(driver, vm, dev->data.rng); if (!ret) { alias =3D dev->data.rng->info.alias; @@ -8441,8 +8440,7 @@ qemuDomainUpdateDeviceConfig(virDomainDefPtr vmdef, } =20 static int -qemuDomainAttachDeviceLiveAndConfig(virConnectPtr conn, - virDomainObjPtr vm, +qemuDomainAttachDeviceLiveAndConfig(virDomainObjPtr vm, virQEMUDriverPtr driver, const char *xml, unsigned int flags) @@ -8501,7 +8499,7 @@ qemuDomainAttachDeviceLiveAndConfig(virConnectPtr con= n, if (virDomainDefCompatibleDevice(vm->def, dev_copy) < 0) goto cleanup; =20 - if ((ret =3D qemuDomainAttachDeviceLive(vm, dev_copy, conn, driver= )) < 0) + if ((ret =3D qemuDomainAttachDeviceLive(vm, dev_copy, driver)) < 0) goto cleanup; /* * update domain status forcibly because the domain status may be @@ -8557,7 +8555,7 @@ qemuDomainAttachDeviceFlags(virDomainPtr dom, if (virDomainObjUpdateModificationImpact(vm, &flags) < 0) goto endjob; =20 - if (qemuDomainAttachDeviceLiveAndConfig(dom->conn, vm, driver, xml, fl= ags) < 0) + if (qemuDomainAttachDeviceLiveAndConfig(vm, driver, xml, flags) < 0) goto endjob; =20 ret =3D 0; diff --git a/src/qemu/qemu_hotplug.c b/src/qemu/qemu_hotplug.c index ee8b53b719..3c87d73745 100644 --- a/src/qemu/qemu_hotplug.c +++ b/src/qemu/qemu_hotplug.c @@ -354,8 +354,7 @@ qemuDomainChangeEjectableMedia(virQEMUDriverPtr driver, * Attaches disk to a VM. This function aggregates common code for all bus= types. * In cases when the VM crashed while adding the disk, -2 is returned. */ static int -qemuDomainAttachDiskGeneric(virConnectPtr conn, - virQEMUDriverPtr driver, +qemuDomainAttachDiskGeneric(virQEMUDriverPtr driver, virDomainObjPtr vm, virDomainDiskDefPtr disk) { @@ -382,7 +381,7 @@ qemuDomainAttachDiskGeneric(virConnectPtr conn, if (qemuAssignDeviceDiskAlias(vm->def, disk) < 0) goto error; =20 - if (qemuDomainPrepareDiskSource(conn, disk, priv, cfg) < 0) + if (qemuDomainPrepareDiskSource(disk, priv, cfg) < 0) goto error; =20 srcPriv =3D QEMU_DOMAIN_STORAGE_SOURCE_PRIVATE(disk->src); @@ -487,8 +486,7 @@ qemuDomainAttachDiskGeneric(virConnectPtr conn, =20 =20 static int -qemuDomainAttachVirtioDiskDevice(virConnectPtr conn, - virQEMUDriverPtr driver, +qemuDomainAttachVirtioDiskDevice(virQEMUDriverPtr driver, virDomainObjPtr vm, virDomainDiskDefPtr disk) { @@ -499,7 +497,7 @@ qemuDomainAttachVirtioDiskDevice(virConnectPtr conn, if (qemuDomainEnsureVirtioAddress(&releaseaddr, vm, &dev, disk->dst) <= 0) return -1; =20 - if ((rv =3D qemuDomainAttachDiskGeneric(conn, driver, vm, disk)) < 0) { + if ((rv =3D qemuDomainAttachDiskGeneric(driver, vm, disk)) < 0) { if (rv =3D=3D -1 && releaseaddr) qemuDomainReleaseDeviceAddress(vm, &disk->info, disk->dst); =20 @@ -639,8 +637,7 @@ qemuDomainFindOrCreateSCSIDiskController(virQEMUDriverP= tr driver, =20 =20 static int -qemuDomainAttachSCSIDisk(virConnectPtr conn, - virQEMUDriverPtr driver, +qemuDomainAttachSCSIDisk(virQEMUDriverPtr driver, virDomainObjPtr vm, virDomainDiskDefPtr disk) { @@ -666,7 +663,7 @@ qemuDomainAttachSCSIDisk(virConnectPtr conn, return -1; } =20 - if (qemuDomainAttachDiskGeneric(conn, driver, vm, disk) < 0) + if (qemuDomainAttachDiskGeneric(driver, vm, disk) < 0) return -1; =20 return 0; @@ -674,8 +671,7 @@ qemuDomainAttachSCSIDisk(virConnectPtr conn, =20 =20 static int -qemuDomainAttachUSBMassStorageDevice(virConnectPtr conn, - virQEMUDriverPtr driver, +qemuDomainAttachUSBMassStorageDevice(virQEMUDriverPtr driver, virDomainObjPtr vm, virDomainDiskDefPtr disk) { @@ -686,7 +682,7 @@ qemuDomainAttachUSBMassStorageDevice(virConnectPtr conn, return -1; } =20 - if (qemuDomainAttachDiskGeneric(conn, driver, vm, disk) < 0) { + if (qemuDomainAttachDiskGeneric(driver, vm, disk) < 0) { virDomainUSBAddressRelease(priv->usbaddrs, &disk->info); return -1; } @@ -696,8 +692,7 @@ qemuDomainAttachUSBMassStorageDevice(virConnectPtr conn, =20 =20 int -qemuDomainAttachDeviceDiskLive(virConnectPtr conn, - virQEMUDriverPtr driver, +qemuDomainAttachDeviceDiskLive(virQEMUDriverPtr driver, virDomainObjPtr vm, virDomainDeviceDefPtr dev) { @@ -761,15 +756,15 @@ qemuDomainAttachDeviceDiskLive(virConnectPtr conn, _("disk device=3D'lun' is not supported for= usb bus")); break; } - ret =3D qemuDomainAttachUSBMassStorageDevice(conn, driver, vm,= disk); + ret =3D qemuDomainAttachUSBMassStorageDevice(driver, vm, disk); break; =20 case VIR_DOMAIN_DISK_BUS_VIRTIO: - ret =3D qemuDomainAttachVirtioDiskDevice(conn, driver, vm, dis= k); + ret =3D qemuDomainAttachVirtioDiskDevice(driver, vm, disk); break; =20 case VIR_DOMAIN_DISK_BUS_SCSI: - ret =3D qemuDomainAttachSCSIDisk(conn, driver, vm, disk); + ret =3D qemuDomainAttachSCSIDisk(driver, vm, disk); break; =20 case VIR_DOMAIN_DISK_BUS_IDE: @@ -954,11 +949,8 @@ qemuDomainAttachNetDevice(virQEMUDriverPtr driver, * as a hostdev (the hostdev code will reach over into the * netdev-specific code as appropriate), then also added to * the nets list (see cleanup:) if successful. - * - * qemuDomainAttachHostDevice uses a connection to resolve - * a SCSI hostdev secret, which is not this case, so pass NULL. */ - ret =3D qemuDomainAttachHostDevice(NULL, driver, vm, + ret =3D qemuDomainAttachHostDevice(driver, vm, virDomainNetGetActualHostdev(net)= ); goto cleanup; break; @@ -1519,8 +1511,7 @@ qemuDomainGetTLSObjects(virQEMUCapsPtr qemuCaps, =20 =20 static int -qemuDomainAddChardevTLSObjects(virConnectPtr conn, - virQEMUDriverPtr driver, +qemuDomainAddChardevTLSObjects(virQEMUDriverPtr driver, virDomainObjPtr vm, virDomainChrSourceDefPtr dev, char *devAlias, @@ -1545,7 +1536,7 @@ qemuDomainAddChardevTLSObjects(virConnectPtr conn, goto cleanup; } =20 - if (qemuDomainSecretChardevPrepare(conn, cfg, priv, devAlias, dev) < 0) + if (qemuDomainSecretChardevPrepare(cfg, priv, devAlias, dev) < 0) goto cleanup; =20 if ((chrSourcePriv =3D QEMU_DOMAIN_CHR_SOURCE_PRIVATE(dev))) @@ -1623,8 +1614,7 @@ qemuDomainDelChardevTLSObjects(virQEMUDriverPtr drive= r, } =20 =20 -int qemuDomainAttachRedirdevDevice(virConnectPtr conn, - virQEMUDriverPtr driver, +int qemuDomainAttachRedirdevDevice(virQEMUDriverPtr driver, virDomainObjPtr vm, virDomainRedirdevDefPtr redirdev) { @@ -1655,7 +1645,7 @@ int qemuDomainAttachRedirdevDevice(virConnectPtr conn, if (VIR_REALLOC_N(def->redirdevs, def->nredirdevs+1) < 0) goto cleanup; =20 - if (qemuDomainAddChardevTLSObjects(conn, driver, vm, redirdev->source, + if (qemuDomainAddChardevTLSObjects(driver, vm, redirdev->source, redirdev->info.alias, charAlias, &tlsAlias, &secAlias) < 0) goto audit; @@ -1861,8 +1851,7 @@ qemuDomainAttachChrDeviceAssignAddr(virDomainObjPtr v= m, return 0; } =20 -int qemuDomainAttachChrDevice(virConnectPtr conn, - virQEMUDriverPtr driver, +int qemuDomainAttachChrDevice(virQEMUDriverPtr driver, virDomainObjPtr vm, virDomainChrDefPtr chr) { @@ -1914,7 +1903,7 @@ int qemuDomainAttachChrDevice(virConnectPtr conn, if (qemuDomainChrPreInsert(vmdef, chr) < 0) goto cleanup; =20 - if (qemuDomainAddChardevTLSObjects(conn, driver, vm, dev, + if (qemuDomainAddChardevTLSObjects(driver, vm, dev, chr->info.alias, charAlias, &tlsAlias, &secAlias) < 0) goto audit; @@ -1969,8 +1958,7 @@ int qemuDomainAttachChrDevice(virConnectPtr conn, =20 =20 int -qemuDomainAttachRNGDevice(virConnectPtr conn, - virQEMUDriverPtr driver, +qemuDomainAttachRNGDevice(virQEMUDriverPtr driver, virDomainObjPtr vm, virDomainRNGDefPtr rng) { @@ -2024,7 +2012,7 @@ qemuDomainAttachRNGDevice(virConnectPtr conn, goto cleanup; =20 if (rng->backend =3D=3D VIR_DOMAIN_RNG_BACKEND_EGD) { - if (qemuDomainAddChardevTLSObjects(conn, driver, vm, + if (qemuDomainAddChardevTLSObjects(driver, vm, rng->source.chardev, rng->info.alias, charAlias, &tlsAlias, &secAlias) < 0) @@ -2325,8 +2313,7 @@ qemuDomainAttachHostUSBDevice(virQEMUDriverPtr driver, =20 =20 static int -qemuDomainAttachHostSCSIDevice(virConnectPtr conn, - virQEMUDriverPtr driver, +qemuDomainAttachHostSCSIDevice(virQEMUDriverPtr driver, virDomainObjPtr vm, virDomainHostdevDefPtr hostdev) { @@ -2383,7 +2370,7 @@ qemuDomainAttachHostSCSIDevice(virConnectPtr conn, if (qemuAssignDeviceHostdevAlias(vm->def, &hostdev->info->alias, -1) <= 0) goto cleanup; =20 - if (qemuDomainSecretHostdevPrepare(conn, priv, hostdev) < 0) + if (qemuDomainSecretHostdevPrepare(priv, hostdev) < 0) goto cleanup; =20 if (scsisrc->protocol =3D=3D VIR_DOMAIN_HOSTDEV_SCSI_PROTOCOL_TYPE_ISC= SI) { @@ -2585,8 +2572,7 @@ qemuDomainAttachSCSIVHostDevice(virQEMUDriverPtr driv= er, =20 =20 int -qemuDomainAttachHostDevice(virConnectPtr conn, - virQEMUDriverPtr driver, +qemuDomainAttachHostDevice(virQEMUDriverPtr driver, virDomainObjPtr vm, virDomainHostdevDefPtr hostdev) { @@ -2611,7 +2597,7 @@ qemuDomainAttachHostDevice(virConnectPtr conn, break; =20 case VIR_DOMAIN_HOSTDEV_SUBSYS_TYPE_SCSI: - if (qemuDomainAttachHostSCSIDevice(conn, driver, vm, + if (qemuDomainAttachHostSCSIDevice(driver, vm, hostdev) < 0) goto error; break; diff --git a/src/qemu/qemu_hotplug.h b/src/qemu/qemu_hotplug.h index 9a0c057f19..b2f5fa688b 100644 --- a/src/qemu/qemu_hotplug.h +++ b/src/qemu/qemu_hotplug.h @@ -62,19 +62,16 @@ int qemuDomainGetTLSObjects(virQEMUCapsPtr qemuCaps, int qemuDomainAttachControllerDevice(virQEMUDriverPtr driver, virDomainObjPtr vm, virDomainControllerDefPtr controller); -int qemuDomainAttachDeviceDiskLive(virConnectPtr conn, - virQEMUDriverPtr driver, +int qemuDomainAttachDeviceDiskLive(virQEMUDriverPtr driver, virDomainObjPtr vm, virDomainDeviceDefPtr dev); int qemuDomainAttachNetDevice(virQEMUDriverPtr driver, virDomainObjPtr vm, virDomainNetDefPtr net); -int qemuDomainAttachRedirdevDevice(virConnectPtr conn, - virQEMUDriverPtr driver, +int qemuDomainAttachRedirdevDevice(virQEMUDriverPtr driver, virDomainObjPtr vm, virDomainRedirdevDefPtr hostdev); -int qemuDomainAttachHostDevice(virConnectPtr conn, - virQEMUDriverPtr driver, +int qemuDomainAttachHostDevice(virQEMUDriverPtr driver, virDomainObjPtr vm, virDomainHostdevDefPtr hostdev); int qemuDomainAttachShmemDevice(virQEMUDriverPtr driver, @@ -140,15 +137,13 @@ int qemuDomainAttachLease(virQEMUDriverPtr driver, int qemuDomainDetachLease(virQEMUDriverPtr driver, virDomainObjPtr vm, virDomainLeaseDefPtr lease); -int qemuDomainAttachChrDevice(virConnectPtr conn, - virQEMUDriverPtr driver, +int qemuDomainAttachChrDevice(virQEMUDriverPtr driver, virDomainObjPtr vm, virDomainChrDefPtr chr); int qemuDomainDetachChrDevice(virQEMUDriverPtr driver, virDomainObjPtr vm, virDomainChrDefPtr chr); -int qemuDomainAttachRNGDevice(virConnectPtr conn, - virQEMUDriverPtr driver, +int qemuDomainAttachRNGDevice(virQEMUDriverPtr driver, virDomainObjPtr vm, virDomainRNGDefPtr rng); int qemuDomainDetachRNGDevice(virQEMUDriverPtr driver, diff --git a/src/qemu/qemu_migration.c b/src/qemu/qemu_migration.c index 88639c71fc..d202e87fbe 100644 --- a/src/qemu/qemu_migration.c +++ b/src/qemu/qemu_migration.c @@ -128,7 +128,6 @@ qemuMigrationCheckTLSCreds(virQEMUDriverPtr driver, =20 =20 /* qemuMigrationCheckSetupTLS - * @conn: Connection pointer * @driver: pointer to qemu driver * @vm: domain object * @cfg: configuration pointer @@ -144,8 +143,7 @@ qemuMigrationCheckTLSCreds(virQEMUDriverPtr driver, * Returns 0 on success, -1 on error/failure */ static int -qemuMigrationCheckSetupTLS(virConnectPtr conn, - virQEMUDriverPtr driver, +qemuMigrationCheckSetupTLS(virQEMUDriverPtr driver, virQEMUDriverConfigPtr cfg, virDomainObjPtr vm, qemuDomainAsyncJob asyncJob) @@ -171,7 +169,7 @@ qemuMigrationCheckSetupTLS(virConnectPtr conn, /* If there's a secret, then grab/store it now using the connection */ if (cfg->migrateTLSx509secretUUID && !(priv->migSecinfo =3D - qemuDomainSecretInfoTLSNew(conn, priv, QEMU_MIGRATION_TLS_ALIAS_= BASE, + qemuDomainSecretInfoTLSNew(priv, QEMU_MIGRATION_TLS_ALIAS_BASE, cfg->migrateTLSx509secretUUID))) return -1; =20 @@ -2180,7 +2178,7 @@ qemuMigrationBegin(virConnectPtr conn, =20 if (flags & VIR_MIGRATE_TLS) { cfg =3D virQEMUDriverGetConfig(driver); - if (qemuMigrationCheckSetupTLS(conn, driver, cfg, vm, asyncJob) < = 0) + if (qemuMigrationCheckSetupTLS(driver, cfg, vm, asyncJob) < 0) goto endjob; } =20 @@ -2788,7 +2786,7 @@ qemuMigrationPrepareAny(virQEMUDriverPtr driver, * set the migration TLS parameters */ if (flags & VIR_MIGRATE_TLS) { cfg =3D virQEMUDriverGetConfig(driver); - if (qemuMigrationCheckSetupTLS(dconn, driver, cfg, vm, + if (qemuMigrationCheckSetupTLS(driver, cfg, vm, QEMU_ASYNC_JOB_MIGRATION_IN) < 0) goto stopjob; =20 diff --git a/src/qemu/qemu_process.c b/src/qemu/qemu_process.c index 586d11bba3..27454fb583 100644 --- a/src/qemu/qemu_process.c +++ b/src/qemu/qemu_process.c @@ -368,11 +368,11 @@ qemuProcessFindDomainDiskByAlias(virDomainObjPtr vm, } =20 static int -qemuProcessGetVolumeQcowPassphrase(virConnectPtr conn, - virDomainDiskDefPtr disk, +qemuProcessGetVolumeQcowPassphrase(virDomainDiskDefPtr disk, char **secretRet, size_t *secretLen) { + virConnectPtr conn =3D NULL; char *passphrase; unsigned char *data; size_t size; @@ -387,19 +387,8 @@ qemuProcessGetVolumeQcowPassphrase(virConnectPtr conn, } enc =3D disk->src->encryption; =20 - if (!conn) { - virReportError(VIR_ERR_INTERNAL_ERROR, - "%s", _("cannot find secrets without a connection")= ); + if (!(conn =3D virGetConnectSecret())) goto cleanup; - } - - if (conn->secretDriver =3D=3D NULL || - conn->secretDriver->secretLookupByUUID =3D=3D NULL || - conn->secretDriver->secretGetValue =3D=3D NULL) { - virReportError(VIR_ERR_OPERATION_INVALID, "%s", - _("secret storage not supported")); - goto cleanup; - } =20 if (enc->format !=3D VIR_STORAGE_ENCRYPTION_FORMAT_QCOW || enc->nsecrets !=3D 1 || @@ -442,6 +431,7 @@ qemuProcessGetVolumeQcowPassphrase(virConnectPtr conn, ret =3D 0; =20 cleanup: + virObjectUnref(conn); return ret; } =20 @@ -453,7 +443,6 @@ qemuProcessFindVolumeQcowPassphrase(qemuMonitorPtr mon = ATTRIBUTE_UNUSED, size_t *secretLen, void *opaque ATTRIBUTE_UNUSED) { - virConnectPtr conn =3D NULL; virDomainDiskDefPtr disk; int ret =3D -1; =20 @@ -465,11 +454,9 @@ qemuProcessFindVolumeQcowPassphrase(qemuMonitorPtr mon= ATTRIBUTE_UNUSED, goto cleanup; } =20 - conn =3D virGetConnectSecret(); - ret =3D qemuProcessGetVolumeQcowPassphrase(conn, disk, secretRet, secr= etLen); + ret =3D qemuProcessGetVolumeQcowPassphrase(disk, secretRet, secretLen); =20 cleanup: - virObjectUnref(conn); virObjectUnlock(vm); return ret; } @@ -2567,8 +2554,7 @@ qemuProcessResctrlCreate(virQEMUDriverPtr driver, =20 =20 static int -qemuProcessInitPasswords(virConnectPtr conn, - virQEMUDriverPtr driver, +qemuProcessInitPasswords(virQEMUDriverPtr driver, virDomainObjPtr vm, int asyncJob) { @@ -2613,8 +2599,7 @@ qemuProcessInitPasswords(virConnectPtr conn, continue; =20 VIR_FREE(secret); - if (qemuProcessGetVolumeQcowPassphrase(conn, - vm->def->disks[i], + if (qemuProcessGetVolumeQcowPassphrase(vm->def->disks[i], &secret, &secretLen) < 0) goto cleanup; =20 @@ -5589,8 +5574,7 @@ qemuProcessPrepareDomainNUMAPlacement(virDomainObjPtr= vm, =20 =20 static int -qemuProcessPrepareDomainStorage(virConnectPtr conn, - virQEMUDriverPtr driver, +qemuProcessPrepareDomainStorage(virQEMUDriverPtr driver, virDomainObjPtr vm, qemuDomainObjPrivatePtr priv, virQEMUDriverConfigPtr cfg, @@ -5611,7 +5595,7 @@ qemuProcessPrepareDomainStorage(virConnectPtr conn, continue; } =20 - if (qemuDomainPrepareDiskSource(conn, disk, priv, cfg) < 0) + if (qemuDomainPrepareDiskSource(disk, priv, cfg) < 0) return -1; } =20 @@ -5722,14 +5706,14 @@ qemuProcessPrepareDomain(virConnectPtr conn, goto cleanup; =20 VIR_DEBUG("Setting up storage"); - if (qemuProcessPrepareDomainStorage(conn, driver, vm, priv, cfg, flags= ) < 0) + if (qemuProcessPrepareDomainStorage(driver, vm, priv, cfg, flags) < 0) goto cleanup; =20 VIR_DEBUG("Prepare chardev source backends for TLS"); qemuDomainPrepareChardevSource(vm->def, cfg); =20 VIR_DEBUG("Add secrets to hostdevs and chardevs"); - if (qemuDomainSecretPrepare(conn, driver, vm) < 0) + if (qemuDomainSecretPrepare(driver, vm) < 0) goto cleanup; =20 for (i =3D 0; i < vm->def->nchannels; i++) { @@ -6180,7 +6164,7 @@ qemuProcessLaunch(virConnectPtr conn, goto cleanup; =20 VIR_DEBUG("Setting any required VM passwords"); - if (qemuProcessInitPasswords(conn, driver, vm, asyncJob) < 0) + if (qemuProcessInitPasswords(driver, vm, asyncJob) < 0) goto cleanup; =20 /* set default link states */ diff --git a/tests/qemuhotplugtest.c b/tests/qemuhotplugtest.c index 63bfe44145..d42f8e12cb 100644 --- a/tests/qemuhotplugtest.c +++ b/tests/qemuhotplugtest.c @@ -120,10 +120,10 @@ testQemuHotplugAttach(virDomainObjPtr vm, /* conn in only used for storage pool and secrets lookup so as long * as we don't use any of them, passing NULL should be safe */ - ret =3D qemuDomainAttachDeviceDiskLive(NULL, &driver, vm, dev); + ret =3D qemuDomainAttachDeviceDiskLive(&driver, vm, dev); break; case VIR_DOMAIN_DEVICE_CHR: - ret =3D qemuDomainAttachChrDevice(NULL, &driver, vm, dev->data.chr= ); + ret =3D qemuDomainAttachChrDevice(&driver, vm, dev->data.chr); break; case VIR_DOMAIN_DEVICE_SHMEM: ret =3D qemuDomainAttachShmemDevice(&driver, vm, dev->data.shmem); --=20 2.14.3 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list