[PATCH v2 5/7] qemu: Block migration when transient disk option is enabled

Peter Krempa pkrempa at redhat.com
Tue Sep 8 13:17:47 UTC 2020


On Fri, Aug 28, 2020 at 10:08:35 -0400, Masayoshi Mizuma wrote:
> From: Masayoshi Mizuma <m.mizuma at jp.fujitsu.com>
> 
> Block migration when transient disk option is enabled because migration
> requires some blockjobs.
> 
> Signed-off-by: Masayoshi Mizuma <m.mizuma at jp.fujitsu.com>
> ---
>  src/qemu/qemu_migration.c | 22 ++++++++++++++++++++++
>  1 file changed, 22 insertions(+)
> 
> diff --git a/src/qemu/qemu_migration.c b/src/qemu/qemu_migration.c
> index 0f2f92b211..6fcf5a3a07 100644
> --- a/src/qemu/qemu_migration.c
> +++ b/src/qemu/qemu_migration.c
> @@ -2949,6 +2949,22 @@ qemuMigrationDstPrepareDirect(virQEMUDriverPtr driver,
>  }
>  
>  
> +static bool
> +qemuMigrationTransientDiskExists(virDomainDefPtr def)
> +{
> +    size_t i;
> +
> +    for (i = 0; i < def->ndisks; i++) {
> +       virDomainDiskDefPtr disk = def->disks[i];
> +
> +       if (disk->transient)
> +            return true;
> +    }
> +
> +    return false;
> +}
> +
> +
>  virDomainDefPtr
>  qemuMigrationAnyPrepareDef(virQEMUDriverPtr driver,
>                             virQEMUCapsPtr qemuCaps,
> @@ -2971,6 +2987,12 @@ qemuMigrationAnyPrepareDef(virQEMUDriverPtr driver,
>                                          VIR_DOMAIN_DEF_PARSE_SKIP_VALIDATE)))
>          goto cleanup;
>  
> +    /*
> +     * transient disk option is a blocker for migration
> +     */
> +    if (qemuMigrationTransientDiskExists(def))
> +       goto cleanup;

This should really be placed into qemuMigrationSrcIsAllowed() rather
than open-coded. Migration is used in other places too and doesn't use
this API to trigger it.




More information about the libvir-list mailing list