update_disk_config: use config volume iterators instead of loops

Signed-off-by: Fabian Ebner <f.ebner@proxmox.com>
This commit is contained in:
Fabian Ebner 2020-03-26 09:09:37 +01:00 committed by Fabian Grünbichler
parent beed0e3b0c
commit ca04977c63

View File

@ -5758,11 +5758,11 @@ sub update_disk_config {
my $referencedpath = {}; my $referencedpath = {};
# update size info # update size info
foreach my $opt (keys %$conf) { PVE::QemuConfig->foreach_volume($conf, undef, sub {
if (is_valid_drivename($opt)) { my ($opt, $drive) = @_;
my $drive = parse_drive($opt, $conf->{$opt});
my $volid = $drive->{file}; my $volid = $drive->{file};
next if !$volid; return if !$volid;
# mark volid as "in-use" for next step # mark volid as "in-use" for next step
$referenced->{$volid} = 1; $referenced->{$volid} = 1;
@ -5771,8 +5771,8 @@ sub update_disk_config {
$referencedpath->{$path} = 1; $referencedpath->{$path} = 1;
} }
next if drive_is_cdrom($drive); return if drive_is_cdrom($drive);
next if !$volid_hash->{$volid}; return if !$volid_hash->{$volid};
my ($updated, $old_size, $new_size) = PVE::QemuServer::Drive::update_disksize($drive, $volid_hash); my ($updated, $old_size, $new_size) = PVE::QemuServer::Drive::update_disksize($drive, $volid_hash);
if (defined($updated)) { if (defined($updated)) {
@ -5780,13 +5780,15 @@ sub update_disk_config {
$conf->{$opt} = print_drive($updated); $conf->{$opt} = print_drive($updated);
print "$prefix size of disk '$volid' ($opt) updated from $old_size to $new_size\n"; print "$prefix size of disk '$volid' ($opt) updated from $old_size to $new_size\n";
} }
} });
}
# remove 'unusedX' entry if volume is used # remove 'unusedX' entry if volume is used
foreach my $opt (keys %$conf) { PVE::QemuConfig->foreach_unused_volume($conf, sub {
next if $opt !~ m/^unused\d+$/; my ($opt, $drive) = @_;
my $volid = $conf->{$opt};
my $volid = $drive->{file};
return if !$volid;
my $path = $volid_hash->{$volid}->{path} if $volid_hash->{$volid}; my $path = $volid_hash->{$volid}->{path} if $volid_hash->{$volid};
if ($referenced->{$volid} || ($path && $referencedpath->{$path})) { if ($referenced->{$volid} || ($path && $referencedpath->{$path})) {
print "$prefix remove entry '$opt', its volume '$volid' is in use\n"; print "$prefix remove entry '$opt', its volume '$volid' is in use\n";
@ -5796,7 +5798,7 @@ sub update_disk_config {
$referenced->{$volid} = 1; $referenced->{$volid} = 1;
$referencedpath->{$path} = 1 if $path; $referencedpath->{$path} = 1 if $path;
} });
foreach my $volid (sort keys %$volid_hash) { foreach my $volid (sort keys %$volid_hash) {
next if $volid =~ m/vm-$vmid-state-/; next if $volid =~ m/vm-$vmid-state-/;