]> xenbits.xensource.com Git - libvirt.git/commitdiff
qemu: migration: allow migration for virtiofs
authorJán Tomko <jtomko@redhat.com>
Thu, 4 Jul 2024 13:54:30 +0000 (15:54 +0200)
committerJán Tomko <jtomko@redhat.com>
Wed, 10 Jul 2024 10:32:23 +0000 (12:32 +0200)
Allow migration if the "migrate-precopy" capability is present or
libvirt is not the one running the virtiofs daemon.

Signed-off-by: Ján Tomko <jtomko@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
src/qemu/qemu_migration.c

index 26c082fc08e761ecb27dae009c0d130acc1d73b1..4fd7a0aafb52d2a9823e4d36ae861970d48b8862 100644 (file)
@@ -39,6 +39,7 @@
 #include "qemu_slirp.h"
 #include "qemu_block.h"
 #include "qemu_tpm.h"
+#include "qemu_vhost_user.h"
 
 #include "domain_audit.h"
 #include "virlog.h"
@@ -1576,8 +1577,12 @@ qemuMigrationSrcIsAllowed(virDomainObj *vm,
             virDomainFSDef *fs = vm->def->fss[i];
 
             if (fs->fsdriver == VIR_DOMAIN_FS_DRIVER_TYPE_VIRTIOFS) {
-                virReportError(VIR_ERR_OPERATION_INVALID, "%s",
-                               _("migration with virtiofs device is not supported"));
+                if (fs->sock ||
+                    virBitmapIsBitSet(fs->caps, QEMU_VHOST_USER_FS_FEATURE_MIGRATE_PRECOPY))
+                    continue;
+
+                virReportError(VIR_ERR_OPERATION_UNSUPPORTED, "%s",
+                               _("migration with this virtiofs device is not supported"));
                 return false;
             }
         }