]> git.proxmox.com Git - qemu-server.git/commitdiff
migrate: aquire guest_migration_lock during migration
authorDietmar Maurer <dietmar@proxmox.com>
Wed, 24 May 2017 07:20:06 +0000 (09:20 +0200)
committerDietmar Maurer <dietmar@proxmox.com>
Wed, 31 May 2017 05:57:03 +0000 (07:57 +0200)
To block replication jobs.

PVE/API2/Qemu.pm

index bc9f7274b1c198a67fce31fdadee87d61a8bc34e..eb61cb8e231f08e98415a43cb71252d7e0b6a0ee 100644 (file)
@@ -16,6 +16,7 @@ use PVE::Storage;
 use PVE::JSONSchema qw(get_standard_option);
 use PVE::RESTHandler;
 use PVE::ReplicationConfig;
+use PVE::GuestHelpers;
 use PVE::QemuConfig;
 use PVE::QemuServer;
 use PVE::QemuMigrate;
@@ -2856,13 +2857,17 @@ __PACKAGE__->register_method({
 
        } else {
 
-           my $realcmd = sub {
-               my $upid = shift;
+           my $code = sub {
+               my $realcmd = sub {
+                   my $upid = shift;
+
+                   PVE::QemuMigrate->migrate($target, $targetip, $vmid, $param);
+               };
 
-               PVE::QemuMigrate->migrate($target, $targetip, $vmid, $param);
+               return $rpcenv->fork_worker('qmigrate', $vmid, $authuser, $realcmd);
            };
 
-           return $rpcenv->fork_worker('qmigrate', $vmid, $authuser, $realcmd);
+           return PVE::GuestHelpers::guest_migration_lock($vmid, 10, $code);
        }
 
     }});