From 0b7a0b78db9ff3a50ce4c82c1f5dd1b21ece8d21 Mon Sep 17 00:00:00 2001 From: Aaron Lauterer Date: Mon, 19 Jun 2023 11:29:29 +0200 Subject: [PATCH] qemuserver: foreach_volid: always include pending disks All calling sites except for QemuConfig.pm::get_replicatable_volumes() already enabled it. Making it the non-configurable default results in a change in the VM replication. Now a disk image only referenced in the pending section will also be replicated. Signed-off-by: Aaron Lauterer --- PVE/API2/Qemu.pm | 2 +- PVE/QemuConfig.pm | 2 +- PVE/QemuMigrate.pm | 2 +- PVE/QemuServer.pm | 9 ++++----- 4 files changed, 7 insertions(+), 8 deletions(-) diff --git a/PVE/API2/Qemu.pm b/PVE/API2/Qemu.pm index c75d9550..59307133 100644 --- a/PVE/API2/Qemu.pm +++ b/PVE/API2/Qemu.pm @@ -4232,7 +4232,7 @@ my $check_vm_disks_local = sub { my $local_disks = {}; # add some more information to the disks e.g. cdrom - PVE::QemuServer::foreach_volid($vmconf, 1, sub { + PVE::QemuServer::foreach_volid($vmconf, sub { my ($volid, $attr) = @_; my ($storeid, $volname) = PVE::Storage::parse_volume_id($volid, 1); diff --git a/PVE/QemuConfig.pm b/PVE/QemuConfig.pm index 5e46db21..10e69299 100644 --- a/PVE/QemuConfig.pm +++ b/PVE/QemuConfig.pm @@ -161,7 +161,7 @@ sub get_replicatable_volumes { $volhash->{$volid} = 1; }; - PVE::QemuServer::foreach_volid($conf, undef, $test_volid); + PVE::QemuServer::foreach_volid($conf, $test_volid); return $volhash; } diff --git a/PVE/QemuMigrate.pm b/PVE/QemuMigrate.pm index 4058a56e..600eeb7f 100644 --- a/PVE/QemuMigrate.pm +++ b/PVE/QemuMigrate.pm @@ -468,7 +468,7 @@ sub scan_local_volumes { if PVE::Storage::volume_is_base_and_used($storecfg, $volid); }; - PVE::QemuServer::foreach_volid($conf, 1, sub { + PVE::QemuServer::foreach_volid($conf, sub { my ($volid, $attr) = @_; eval { $test_volid->($volid, $attr); }; if (my $err = $@) { diff --git a/PVE/QemuServer.pm b/PVE/QemuServer.pm index e1a048c8..a573f062 100644 --- a/PVE/QemuServer.pm +++ b/PVE/QemuServer.pm @@ -4840,7 +4840,7 @@ sub set_migration_caps { } sub foreach_volid { - my ($conf, $include_pending, $func, @param) = @_; + my ($conf, $func, @param) = @_; my $volhash = {}; @@ -4890,9 +4890,8 @@ sub foreach_volid { PVE::QemuConfig->foreach_volume_full($conf, $include_opts, $test_volid); - if ($include_pending && defined($conf->{pending}) && $conf->{pending}->%*) { - PVE::QemuConfig->foreach_volume_full($conf->{pending}, $include_opts, $test_volid, undef, 1); - } + PVE::QemuConfig->foreach_volume_full($conf->{pending}, $include_opts, $test_volid, undef, 1) + if defined($conf->{pending}) && $conf->{pending}->%*; foreach my $snapname (keys %{$conf->{snapshots}}) { my $snap = $conf->{snapshots}->{$snapname}; @@ -6148,7 +6147,7 @@ sub get_vm_volumes { my ($conf) = @_; my $vollist = []; - foreach_volid($conf, 1, sub { + foreach_volid($conf, sub { my ($volid, $attr) = @_; return if $volid =~ m|^/|; -- 2.39.5