]> git.proxmox.com Git - qemu-server.git/blobdiff - PVE/QemuMigrate.pm
add hugepages option
[qemu-server.git] / PVE / QemuMigrate.pm
index 5bfdc053db71c3efb95cc383e46da34581d02f1f..1305b5ca3803b7e09fcd0141aec6f5861cebbe3a 100644 (file)
@@ -225,7 +225,6 @@ sub sync_disks {
     eval {
 
        my $volhash = {};
-       my $cdromhash = {};
 
        my $sharedvm = 1;
 
@@ -261,7 +260,6 @@ sub sync_disks {
            if ($is_cdrom) {
                die "can't migrate local cdrom drive\n" if $volid eq 'cdrom';
                return if $volid eq 'none';
-               $cdromhash->{$volid} = 1;
            }
 
            my ($sid, $volname) = PVE::Storage::parse_volume_id($volid);
@@ -274,7 +272,7 @@ sub sync_disks {
 
            $sharedvm = 0;
 
-           die "can't migrate local cdrom '$volid'\n" if $cdromhash->{$volid};
+           die "can't migrate local cdrom '$volid'\n" if $is_cdrom;
 
            my ($path, $owner) = PVE::Storage::path($self->{storecfg}, $volid);
 
@@ -299,9 +297,17 @@ sub sync_disks {
            }
        };
 
-       PVE::QemuServer::foreach_volid($conf, $test_volid);
+       my $test_drive = sub {
+           my ($ds, $drive, $snapname) = @_;
+
+           &$test_volid($drive->{file}, PVE::QemuServer::drive_is_cdrom($drive), $snapname);
+       };
+
+       PVE::QemuServer::foreach_drive($conf, $test_drive);
        foreach my $snapname (keys %{$conf->{snapshots}}) {
-           PVE::QemuServer::foreach_volid($conf->{snapshots}->{$snapname}, $test_volid, $snapname);
+           &$test_volid($conf->{snapshots}->{$snapname}->{'vmstate'}, 0, undef)
+               if defined($conf->{snapshots}->{$snapname}->{'vmstate'});
+           PVE::QemuServer::foreach_drive($conf->{snapshots}->{$snapname}, $test_drive, $snapname);
        }
 
        if ($self->{running} && !$sharedvm) {