- my $test_drive = sub {
- my ($ds, $drive, $snapname) = @_;
-
- eval {
- &$test_volid($drive->{file}, PVE::QemuServer::drive_is_cdrom($drive), $snapname);
- };
-
- &$log_error($@, $drive->{file}) if $@;
- };
-
- foreach my $snapname (keys %{$conf->{snapshots}}) {
- eval {
- &$test_volid($conf->{snapshots}->{$snapname}->{'vmstate'}, 0, undef)
- if defined($conf->{snapshots}->{$snapname}->{'vmstate'});
- };
- &$log_error($@, $conf->{snapshots}->{$snapname}->{'vmstate'}) if $@;
-
- PVE::QemuServer::foreach_drive($conf->{snapshots}->{$snapname}, $test_drive, $snapname);
- }
- PVE::QemuServer::foreach_drive($conf, $test_drive);
+ PVE::QemuServer::foreach_volid($conf, sub {
+ my ($volid, $attr) = @_;
+ eval { $test_volid->($volid, $attr); };
+ if (my $err = $@) {
+ &$log_error($err, $volid);
+ }
+ });