[libvirt PATCH 61/80] qemu: Refactor qemuMigrationDstPrepareFresh
Pavel Hrdina
phrdina at redhat.com
Thu May 12 15:51:15 UTC 2022
On Tue, May 10, 2022 at 05:21:22PM +0200, Jiri Denemark wrote:
> Offline migration jumps over a big part of qemuMigrationDstPrepareFresh.
> Let's move that part into a new qemuMigrationDstPrepareActive function
> to make the code easier to follow.
>
> Signed-off-by: Jiri Denemark <jdenemar at redhat.com>
> ---
> src/qemu/qemu_migration.c | 374 +++++++++++++++++++++-----------------
> 1 file changed, 206 insertions(+), 168 deletions(-)
>
> diff --git a/src/qemu/qemu_migration.c b/src/qemu/qemu_migration.c
> index f1e3774034..dc608fb8a4 100644
> --- a/src/qemu/qemu_migration.c
> +++ b/src/qemu/qemu_migration.c
> @@ -3118,6 +3118,200 @@ qemuMigrationDstPrepareAnyBlockDirtyBitmaps(virDomainObj *vm,
> }
>
>
> +static int
> +qemuMigrationDstPrepareActive(virQEMUDriver *driver,
> + virDomainObj *vm,
> + virConnectPtr dconn,
> + qemuMigrationCookie *mig,
> + virStreamPtr st,
> + const char *protocol,
> + unsigned short port,
> + const char *listenAddress,
> + size_t nmigrate_disks,
> + const char **migrate_disks,
> + int nbdPort,
> + const char *nbdURI,
> + qemuMigrationParams *migParams,
> + unsigned long flags)
> +{
[...]
> + if (qemuProcessFinishStartup(driver, vm, VIR_ASYNC_JOB_MIGRATION_IN,
> + false, VIR_DOMAIN_PAUSED_MIGRATION) < 0)
> + goto error;
> +
> + if (!(flags & VIR_MIGRATE_OFFLINE)) {
No need for this check because the function call is guarded by
the same check.
> + virDomainAuditStart(vm, "migrated", true);
> + event = virDomainEventLifecycleNewFromObj(vm,
> + VIR_DOMAIN_EVENT_STARTED,
> + VIR_DOMAIN_EVENT_STARTED_MIGRATED);
> + }
> +
> + ret = 0;
> +
[...]
> @@ -3140,32 +3334,20 @@ qemuMigrationDstPrepareFresh(virQEMUDriver *driver,
> unsigned long flags)
> {
[...]
> + if (!(flags & VIR_MIGRATE_OFFLINE)) {
> + if (qemuMigrationDstPrepareActive(driver, vm, dconn, mig, st,
> + protocol, port, listenAddress,
> + nmigrate_disks, migrate_disks,
> + nbdPort, nbdURI,
> + migParams, flags) < 0) {
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: not available
URL: <http://listman.redhat.com/archives/libvir-list/attachments/20220512/cfa50a50/attachment.sig>
More information about the libvir-list
mailing list