On Fri, Aug 28, 2020 at 10:08:35 -0400, Masayoshi Mizuma wrote: > From: Masayoshi Mizuma <m.mizuma@xxxxxxxxxxxxxx> > > Block migration when transient disk option is enabled because migration > requires some blockjobs. > > Signed-off-by: Masayoshi Mizuma <m.mizuma@xxxxxxxxxxxxxx> > --- > 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.