From nobody Wed May 14 13:03:10 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 1523457776744914.9674529988023; Wed, 11 Apr 2018 07:42:56 -0700 (PDT) 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 3A5213130398; Wed, 11 Apr 2018 14:42:54 +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 0C3BE78BB3; Wed, 11 Apr 2018 14:42:54 +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 C50344CAB5; Wed, 11 Apr 2018 14:42:53 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx06.intmail.prod.int.rdu2.redhat.com [10.11.54.6]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id w3BEgF00008795 for ; Wed, 11 Apr 2018 10:42:15 -0400 Received: by smtp.corp.redhat.com (Postfix) id B5E2D215CDCB; Wed, 11 Apr 2018 14:42:15 +0000 (UTC) Received: from virval.usersys.redhat.com (unknown [10.43.2.20]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 5CD5C215CDAF for ; Wed, 11 Apr 2018 14:42:15 +0000 (UTC) Received: by virval.usersys.redhat.com (Postfix, from userid 500) id 85980100B66; Wed, 11 Apr 2018 16:42:10 +0200 (CEST) From: Jiri Denemark To: libvir-list@redhat.com Date: Wed, 11 Apr 2018 16:41:25 +0200 Message-Id: <0b40e0c0e5dc5f9d076480c7a4ad5ac7fbeff24f.1523456480.git.jdenemar@redhat.com> In-Reply-To: References: In-Reply-To: References: Mail-Followup-To: libvir-list@redhat.com X-Scanned-By: MIMEDefang 2.78 on 10.11.54.6 X-loop: libvir-list@redhat.com Subject: [libvirt] [PATCH v2 35/73] qemu: Use qemuMigrationParamsFromFlags everywhere 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.43]); Wed, 11 Apr 2018 14:42:54 +0000 (UTC) X-ZohoMail: RSF_0 Z_629925259 SPT_0 Content-Type: text/plain; charset="utf-8" Every migration entry point in qemu_driver is supposed to call qemuMigrationParamsFromFlags to transform flags and parameters into qemuMigrationParams structure and pass the result to qemuMigration* APIs. Signed-off-by: Jiri Denemark Reviewed-by: J=EF=BF=BDn Tomko --- src/qemu/qemu_driver.c | 64 +++++++++++++++++++++++++++++++-------- src/qemu/qemu_migration.c | 23 ++++++-------- src/qemu/qemu_migration.h | 2 ++ 3 files changed, 62 insertions(+), 27 deletions(-) diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c index d8a641f77d..5271e01d92 100644 --- a/src/qemu/qemu_driver.c +++ b/src/qemu/qemu_driver.c @@ -12126,6 +12126,7 @@ qemuDomainMigratePrepareTunnel(virConnectPtr dconn, virQEMUDriverPtr driver =3D dconn->privateData; virDomainDefPtr def =3D NULL; char *origname =3D NULL; + qemuMigrationParamsPtr migParams =3D NULL; int ret =3D -1; =20 virCheckFlags(QEMU_MIGRATION_FLAGS, -1); @@ -12136,6 +12137,10 @@ qemuDomainMigratePrepareTunnel(virConnectPtr dconn, goto cleanup; } =20 + if (!(migParams =3D qemuMigrationParamsFromFlags(NULL, 0, flags, + QEMU_MIGRATION_DESTINAT= ION))) + goto cleanup; + if (virLockManagerPluginUsesState(driver->lockManager)) { virReportError(VIR_ERR_INTERNAL_ERROR, _("Cannot use migrate v2 protocol with lock manager= %s"), @@ -12151,9 +12156,10 @@ qemuDomainMigratePrepareTunnel(virConnectPtr dconn, =20 ret =3D qemuMigrationDstPrepareTunnel(driver, dconn, NULL, 0, NULL, NULL, /* No cookies= in v2 */ - st, &def, origname, flags); + st, &def, origname, migParams, fla= gs); =20 cleanup: + qemuMigrationParamsFree(migParams); VIR_FREE(origname); virDomainDefFree(def); return ret; @@ -12178,6 +12184,7 @@ qemuDomainMigratePrepare2(virConnectPtr dconn, virDomainDefPtr def =3D NULL; char *origname =3D NULL; qemuMigrationCompressionPtr compression =3D NULL; + qemuMigrationParamsPtr migParams =3D NULL; int ret =3D -1; =20 virCheckFlags(QEMU_MIGRATION_FLAGS, -1); @@ -12195,6 +12202,10 @@ qemuDomainMigratePrepare2(virConnectPtr dconn, if (!(compression =3D qemuMigrationAnyCompressionParse(NULL, 0, flags)= )) goto cleanup; =20 + if (!(migParams =3D qemuMigrationParamsFromFlags(NULL, 0, flags, + QEMU_MIGRATION_DESTINAT= ION))) + goto cleanup; + if (virLockManagerPluginUsesState(driver->lockManager)) { virReportError(VIR_ERR_INTERNAL_ERROR, _("Cannot use migrate v2 protocol with lock manager= %s"), @@ -12216,9 +12227,10 @@ qemuDomainMigratePrepare2(virConnectPtr dconn, NULL, 0, NULL, NULL, /* No cookies= */ uri_in, uri_out, &def, origname, NULL, 0, NULL, 0, - compression, flags); + compression, migParams, flags); =20 cleanup: + qemuMigrationParamsFree(migParams); VIR_FREE(compression); VIR_FREE(origname); virDomainDefFree(def); @@ -12252,10 +12264,11 @@ qemuDomainMigratePerform(virDomainPtr dom, goto cleanup; } =20 - if (!(migParams =3D qemuMigrationParamsNew())) + if (!(compression =3D qemuMigrationAnyCompressionParse(NULL, 0, flags)= )) goto cleanup; =20 - if (!(compression =3D qemuMigrationAnyCompressionParse(NULL, 0, flags)= )) + if (!(migParams =3D qemuMigrationParamsFromFlags(NULL, 0, flags, + QEMU_MIGRATION_SOURCE))) goto cleanup; =20 if (!(vm =3D qemuDomObjFromDomain(dom))) @@ -12430,6 +12443,7 @@ qemuDomainMigratePrepare3(virConnectPtr dconn, virDomainDefPtr def =3D NULL; char *origname =3D NULL; qemuMigrationCompressionPtr compression =3D NULL; + qemuMigrationParamsPtr migParams =3D NULL; int ret =3D -1; =20 virCheckFlags(QEMU_MIGRATION_FLAGS, -1); @@ -12447,6 +12461,10 @@ qemuDomainMigratePrepare3(virConnectPtr dconn, if (!(compression =3D qemuMigrationAnyCompressionParse(NULL, 0, flags)= )) goto cleanup; =20 + if (!(migParams =3D qemuMigrationParamsFromFlags(NULL, 0, flags, + QEMU_MIGRATION_DESTINAT= ION))) + goto cleanup; + if (!(def =3D qemuMigrationAnyPrepareDef(driver, dom_xml, dname, &orig= name))) goto cleanup; =20 @@ -12458,9 +12476,10 @@ qemuDomainMigratePrepare3(virConnectPtr dconn, cookieout, cookieoutlen, uri_in, uri_out, &def, origname, NULL, 0, NULL, 0, - compression, flags); + compression, migParams, flags); =20 cleanup: + qemuMigrationParamsFree(migParams); VIR_FREE(compression); VIR_FREE(origname); virDomainDefFree(def); @@ -12490,6 +12509,7 @@ qemuDomainMigratePrepare3Params(virConnectPtr dconn, const char **migrate_disks =3D NULL; char *origname =3D NULL; qemuMigrationCompressionPtr compression =3D NULL; + qemuMigrationParamsPtr migParams =3D NULL; int ret =3D -1; =20 virCheckFlagsGoto(QEMU_MIGRATION_FLAGS, cleanup); @@ -12523,6 +12543,10 @@ qemuDomainMigratePrepare3Params(virConnectPtr dcon= n, if (!(compression =3D qemuMigrationAnyCompressionParse(params, nparams= , flags))) goto cleanup; =20 + if (!(migParams =3D qemuMigrationParamsFromFlags(params, nparams, flag= s, + QEMU_MIGRATION_DESTINAT= ION))) + goto cleanup; + if (flags & VIR_MIGRATE_TUNNELLED) { /* this is a logical error; we never should have gotten here with * VIR_MIGRATE_TUNNELLED set @@ -12545,9 +12569,10 @@ qemuDomainMigratePrepare3Params(virConnectPtr dcon= n, uri_in, uri_out, &def, origname, listenAddress, nmigrate_disks, migrate_disks, nbd= Port, - compression, flags); + compression, migParams, flags); =20 cleanup: + qemuMigrationParamsFree(migParams); VIR_FREE(compression); VIR_FREE(migrate_disks); VIR_FREE(origname); @@ -12572,6 +12597,7 @@ qemuDomainMigratePrepareTunnel3(virConnectPtr dconn, virQEMUDriverPtr driver =3D dconn->privateData; virDomainDefPtr def =3D NULL; char *origname =3D NULL; + qemuMigrationParamsPtr migParams =3D NULL; int ret =3D -1; =20 virCheckFlags(QEMU_MIGRATION_FLAGS, -1); @@ -12582,6 +12608,10 @@ qemuDomainMigratePrepareTunnel3(virConnectPtr dcon= n, goto cleanup; } =20 + if (!(migParams =3D qemuMigrationParamsFromFlags(NULL, 0, flags, + QEMU_MIGRATION_DESTINAT= ION))) + goto cleanup; + if (!(def =3D qemuMigrationAnyPrepareDef(driver, dom_xml, dname, &orig= name))) goto cleanup; =20 @@ -12591,9 +12621,10 @@ qemuDomainMigratePrepareTunnel3(virConnectPtr dcon= n, ret =3D qemuMigrationDstPrepareTunnel(driver, dconn, cookiein, cookieinlen, cookieout, cookieoutlen, - st, &def, origname, flags); + st, &def, origname, migParams, fla= gs); =20 cleanup: + qemuMigrationParamsFree(migParams); VIR_FREE(origname); virDomainDefFree(def); return ret; @@ -12615,6 +12646,7 @@ qemuDomainMigratePrepareTunnel3Params(virConnectPtr= dconn, const char *dom_xml =3D NULL; const char *dname =3D NULL; char *origname =3D NULL; + qemuMigrationParamsPtr migParams =3D NULL; int ret =3D -1; =20 virCheckFlags(QEMU_MIGRATION_FLAGS, -1); @@ -12635,6 +12667,10 @@ qemuDomainMigratePrepareTunnel3Params(virConnectPt= r dconn, goto cleanup; } =20 + if (!(migParams =3D qemuMigrationParamsFromFlags(params, nparams, flag= s, + QEMU_MIGRATION_DESTINAT= ION))) + goto cleanup; + if (!(def =3D qemuMigrationAnyPrepareDef(driver, dom_xml, dname, &orig= name))) goto cleanup; =20 @@ -12644,9 +12680,10 @@ qemuDomainMigratePrepareTunnel3Params(virConnectPt= r dconn, ret =3D qemuMigrationDstPrepareTunnel(driver, dconn, cookiein, cookieinlen, cookieout, cookieoutlen, - st, &def, origname, flags); + st, &def, origname, migParams, fla= gs); =20 cleanup: + qemuMigrationParamsFree(migParams); VIR_FREE(origname); virDomainDefFree(def); return ret; @@ -12674,10 +12711,11 @@ qemuDomainMigratePerform3(virDomainPtr dom, =20 virCheckFlags(QEMU_MIGRATION_FLAGS, -1); =20 - if (!(migParams =3D qemuMigrationParamsNew())) + if (!(compression =3D qemuMigrationAnyCompressionParse(NULL, 0, flags)= )) goto cleanup; =20 - if (!(compression =3D qemuMigrationAnyCompressionParse(NULL, 0, flags)= )) + if (!(migParams =3D qemuMigrationParamsFromFlags(NULL, 0, flags, + QEMU_MIGRATION_SOURCE))) goto cleanup; =20 if (!(vm =3D qemuDomObjFromDomain(dom))) @@ -12765,11 +12803,11 @@ qemuDomainMigratePerform3Params(virDomainPtr dom, if (nmigrate_disks < 0) goto cleanup; =20 - if (!(migParams =3D qemuMigrationParamsFromFlags(params, nparams, flag= s, - QEMU_MIGRATION_SOURCE))) + if (!(compression =3D qemuMigrationAnyCompressionParse(params, nparams= , flags))) goto cleanup; =20 - if (!(compression =3D qemuMigrationAnyCompressionParse(params, nparams= , flags))) + if (!(migParams =3D qemuMigrationParamsFromFlags(params, nparams, flag= s, + QEMU_MIGRATION_SOURCE))) goto cleanup; =20 if (!(vm =3D qemuDomObjFromDomain(dom))) diff --git a/src/qemu/qemu_migration.c b/src/qemu/qemu_migration.c index eb544bbb77..5614f0d43e 100644 --- a/src/qemu/qemu_migration.c +++ b/src/qemu/qemu_migration.c @@ -2164,6 +2164,7 @@ qemuMigrationDstPrepareAny(virQEMUDriverPtr driver, const char **migrate_disks, int nbdPort, qemuMigrationCompressionPtr compression, + qemuMigrationParamsPtr migParams, unsigned long flags) { virDomainObjPtr vm =3D NULL; @@ -2184,7 +2185,6 @@ qemuMigrationDstPrepareAny(virQEMUDriverPtr driver, int rv; char *tlsAlias =3D NULL; char *secAlias =3D NULL; - qemuMigrationParamsPtr migParams =3D NULL; =20 virNWFilterReadLockFilterUpdates(); =20 @@ -2234,9 +2234,6 @@ qemuMigrationDstPrepareAny(virQEMUDriverPtr driver, if (!qemuMigrationSrcIsAllowedHostdev(*def)) goto cleanup; =20 - if (!(migParams =3D qemuMigrationParamsNew())) - goto cleanup; - /* Let migration hook filter domain XML */ if (virHookPresent(VIR_HOOK_DRIVER_QEMU)) { char *xml; @@ -2503,7 +2500,6 @@ qemuMigrationDstPrepareAny(virQEMUDriverPtr driver, virDomainObjRemoveTransientDef(vm); qemuDomainRemoveInactiveJob(driver, vm); } - qemuMigrationParamsFree(migParams); virDomainObjEndAPI(&vm); qemuDomainEventQueue(driver, event); qemuMigrationCookieFree(mig); @@ -2543,6 +2539,7 @@ qemuMigrationDstPrepareTunnel(virQEMUDriverPtr driver, virStreamPtr st, virDomainDefPtr *def, const char *origname, + qemuMigrationParamsPtr migParams, unsigned long flags) { qemuMigrationCompressionPtr compression =3D NULL; @@ -2566,7 +2563,7 @@ qemuMigrationDstPrepareTunnel(virQEMUDriverPtr driver, ret =3D qemuMigrationDstPrepareAny(driver, dconn, cookiein, cookieinle= n, cookieout, cookieoutlen, def, orignam= e, st, NULL, 0, false, NULL, 0, NULL, 0, - compression, flags); + compression, migParams, flags); VIR_FREE(compression); return ret; } @@ -2611,6 +2608,7 @@ qemuMigrationDstPrepareDirect(virQEMUDriverPtr driver, const char **migrate_disks, int nbdPort, qemuMigrationCompressionPtr compression, + qemuMigrationParamsPtr migParams, unsigned long flags) { unsigned short port =3D 0; @@ -2734,7 +2732,7 @@ qemuMigrationDstPrepareDirect(virQEMUDriverPtr driver, NULL, uri ? uri->scheme : "tcp", port, autoPort, listenAddress, nmigrate_disks, migrate_disks, nbdPor= t, - compression, flags); + compression, migParams, flags); cleanup: virURIFree(uri); VIR_FREE(hostname); @@ -3788,7 +3786,8 @@ qemuMigrationSrcPerformPeer2Peer2(virQEMUDriverPtr dr= iver, const char *dconnuri, unsigned long flags, const char *dname, - unsigned long resource) + unsigned long resource, + qemuMigrationParamsPtr migParams) { virDomainPtr ddomain =3D NULL; char *uri_out =3D NULL; @@ -3800,7 +3799,6 @@ qemuMigrationSrcPerformPeer2Peer2(virQEMUDriverPtr dr= iver, virStreamPtr st =3D NULL; unsigned long destflags; qemuMigrationCompressionPtr compression =3D NULL; - qemuMigrationParamsPtr migParams =3D NULL; =20 VIR_DEBUG("driver=3D%p, sconn=3D%p, dconn=3D%p, vm=3D%p, dconnuri=3D%s= , " "flags=3D0x%lx, dname=3D%s, resource=3D%lu", @@ -3822,9 +3820,6 @@ qemuMigrationSrcPerformPeer2Peer2(virQEMUDriverPtr dr= iver, destflags =3D flags & ~(VIR_MIGRATE_ABORT_ON_ERROR | VIR_MIGRATE_AUTO_CONVERGE); =20 - if (!(migParams =3D qemuMigrationParamsNew())) - goto cleanup; - if (!(compression =3D qemuMigrationAnyCompressionParse(NULL, 0, flags)= )) goto cleanup; =20 @@ -3926,7 +3921,6 @@ qemuMigrationSrcPerformPeer2Peer2(virQEMUDriverPtr dr= iver, virSetError(orig_err); virFreeError(orig_err); } - qemuMigrationParamsFree(migParams); VIR_FREE(uri_out); VIR_FREE(cookie); VIR_FREE(compression); @@ -4442,7 +4436,8 @@ qemuMigrationSrcPerformPeer2Peer(virQEMUDriverPtr dri= ver, useParams, flags); } else { ret =3D qemuMigrationSrcPerformPeer2Peer2(driver, sconn, dconn, vm, - dconnuri, flags, dname, re= source); + dconnuri, flags, dname, re= source, + migParams); } =20 cleanup: diff --git a/src/qemu/qemu_migration.h b/src/qemu/qemu_migration.h index fc81eb5016..2bf710a919 100644 --- a/src/qemu/qemu_migration.h +++ b/src/qemu/qemu_migration.h @@ -148,6 +148,7 @@ qemuMigrationDstPrepareTunnel(virQEMUDriverPtr driver, virStreamPtr st, virDomainDefPtr *def, const char *origname, + qemuMigrationParamsPtr migParams, unsigned long flags); =20 int @@ -166,6 +167,7 @@ qemuMigrationDstPrepareDirect(virQEMUDriverPtr driver, const char **migrate_disks, int nbdPort, qemuMigrationCompressionPtr compression, + qemuMigrationParamsPtr migParams, unsigned long flags); =20 int --=20 2.17.0 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list