On Wed, May 11, 2022 at 16:53:48 +0200, Peter Krempa wrote:
On Tue, May 10, 2022 at 17:20:54 +0200, Jiri Denemark wrote:
> Refactors qemuMigrationDstFinish by moving some parts to a dedicated
> function for easier introduction of postcopy resume code without
> duplicating common parts of the Finish phase. The goal is to have the
> following call graph:
>
> - qemuMigrationDstFinish
> - qemuMigrationDstFinishOffline
> - qemuMigrationDstFinishActive
> - qemuMigrationDstFinishFresh
> - qemuMigrationDstFinishResume
>
> Signed-off-by: Jiri Denemark <jdenemar(a)redhat.com>
> ---
> src/qemu/qemu_migration.c | 39 +++++++++++++++++++++++++++++----------
> 1 file changed, 29 insertions(+), 10 deletions(-)
>
> diff --git a/src/qemu/qemu_migration.c b/src/qemu/qemu_migration.c
> index 385bd91a6b..dcd7ff3597 100644
> --- a/src/qemu/qemu_migration.c
> +++ b/src/qemu/qemu_migration.c
> @@ -5839,6 +5839,32 @@ qemuMigrationDstComplete(virQEMUDriver *driver,
> }
>
>
> +static virDomainPtr
> +qemuMigrationDstFinishOffline(virQEMUDriver *driver,
> + virConnectPtr dconn,
> + virDomainObj *vm,
> + qemuMigrationCookie *mig,
> + char **cookieout,
> + int *cookieoutlen)
> +{
> + virDomainPtr dom = NULL;
> +
> + if (qemuMigrationDstPersist(driver, vm, mig, false) < 0)
> + return NULL;
> +
> + dom = virGetDomain(dconn, vm->def->name, vm->def->uuid, -1);
> +
> + if (dom &&
Earlier I've commented about uselessness of this check. Other code
formats the cookie unconditionally.
That's because the cookie is formatted before calling virGetDomain
there. We could swap it here too, or drop the check, but we can as well
keep it as is and avoid formatting the cookie when virGetDomain fails
(even though the failure is mostly theoretical).
Jirka