From 62b3f97aeebb552580fec844796bebc4fe7ae7cf Mon Sep 17 00:00:00 2001 From: Peter Krempa Date: Thu, 8 Sep 2022 12:48:47 +0200 Subject: [PATCH] qemu: migration: Don't attempt to fall back to old-style storage migration MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit QEMU supported the NBD server required for the new-style migration for a long time already and when coupled with -blockdev the old style migration doesn't even work, thus remove support for it. This patch modifies the code to check that the destination returned data for the NBD migration and returns an error if it did not and deletes the fallback code paths which would not work. Signed-off-by: Peter Krempa Reviewed-by: Ján Tomko --- src/qemu/qemu_migration.c | 45 +++++++++++++++++---------------------- 1 file changed, 19 insertions(+), 26 deletions(-) diff --git a/src/qemu/qemu_migration.c b/src/qemu/qemu_migration.c index 995364da02..7dc593d49f 100644 --- a/src/qemu/qemu_migration.c +++ b/src/qemu/qemu_migration.c @@ -4817,35 +4817,28 @@ qemuMigrationSrcRun(virQEMUDriver *driver, } if (storageMigration) { - if (mig->nbd) { - const char *host = ""; - const char *tlsHostname = qemuMigrationParamsGetTLSHostname(migParams); + const char *host = ""; + const char *tlsHostname = qemuMigrationParamsGetTLSHostname(migParams); - if (spec->destType == MIGRATION_DEST_HOST || - spec->destType == MIGRATION_DEST_CONNECT_HOST) { - host = spec->dest.host.name; - } + if (!mig->nbd) { + virReportError(VIR_ERR_INTERNAL_ERROR, "%s", + _("migration of non-shared disks requested but NBD is not set up")); + goto error; + } - if (qemuMigrationSrcNBDStorageCopy(driver, vm, mig, - host, - priv->migMaxBandwidth, - nmigrate_disks, - migrate_disks, - dconn, tlsAlias, tlsHostname, - nbdURI, flags) < 0) { - goto error; - } - } else { - /* Destination doesn't support NBD server. - * Fall back to previous implementation. */ - VIR_DEBUG("Destination doesn't support NBD server " - "Falling back to previous implementation."); + if (spec->destType == MIGRATION_DEST_HOST || + spec->destType == MIGRATION_DEST_CONNECT_HOST) { + host = spec->dest.host.name; + } - if (flags & VIR_MIGRATE_NON_SHARED_DISK) - migrate_flags |= QEMU_MONITOR_MIGRATE_NON_SHARED_DISK; - - if (flags & VIR_MIGRATE_NON_SHARED_INC) - migrate_flags |= QEMU_MONITOR_MIGRATE_NON_SHARED_INC; + if (qemuMigrationSrcNBDStorageCopy(driver, vm, mig, + host, + priv->migMaxBandwidth, + nmigrate_disks, + migrate_disks, + dconn, tlsAlias, tlsHostname, + nbdURI, flags) < 0) { + goto error; } }