by using the information obtained in the first scan. This
also makes sure we only scan local storages.

Signed-off-by: Fabian Ebner <f.eb...@proxmox.com>
---
 PVE/QemuMigrate.pm | 7 +++----
 1 file changed, 3 insertions(+), 4 deletions(-)

diff --git a/PVE/QemuMigrate.pm b/PVE/QemuMigrate.pm
index e65b28f..3b138c4 100644
--- a/PVE/QemuMigrate.pm
+++ b/PVE/QemuMigrate.pm
@@ -342,6 +342,7 @@ sub scan_local_volumes {
                my ($volid, $sid, $volinfo) = @_;
 
                $local_volumes->{$volid}->{ref} = 'storage';
+               $local_volumes->{$volid}->{size} = $volinfo->{size};
 
                # If with_snapshots is not set for storage migrate, it tries to 
use
                # a raw+size stream, but on-the-fly conversion from qcow2 to 
raw+size
@@ -516,17 +517,15 @@ sub scan_local_volumes {
        }
 
        # sizes in config have to be accurate for remote node to correctly
-       # allocate disks, rescan to be sure
-       my $volid_hash = PVE::QemuServer::scan_volids($storecfg, $vmid);
+       # allocate disks
        PVE::QemuConfig->foreach_volume($conf, sub {
            my ($key, $drive) = @_;
            return if $key eq 'efidisk0'; # skip efidisk, will be handled later
 
            my $volid = $drive->{file};
            return if !defined($local_volumes->{$volid}); # only update sizes 
for local volumes
-           return if !defined($volid_hash->{$volid});
 
-           my ($updated, $msg) = 
PVE::QemuServer::Drive::update_disksize($drive, $volid_hash->{$volid}->{size});
+           my ($updated, $msg) = 
PVE::QemuServer::Drive::update_disksize($drive, 
$local_volumes->{$volid}->{size});
            if (defined($updated)) {
                $conf->{$key} = PVE::QemuServer::print_drive($updated);
                $self->log('info', "drive '$key': $msg");
-- 
2.20.1


_______________________________________________
pve-devel mailing list
pve-devel@pve.proxmox.com
https://pve.proxmox.com/cgi-bin/mailman/listinfo/pve-devel

Reply via email to