]> git.proxmox.com Git - qemu-server.git/blobdiff - PVE/VZDump/QemuServer.pm
backup: prepare: fix format detection for disks without storage ID
[qemu-server.git] / PVE / VZDump / QemuServer.pm
index add26ad646b9f779ac540ac8c3a84185719bbeb3..036a7228ce83fbfcb674703271ff03fb8b1abc08 100644 (file)
@@ -119,11 +119,20 @@ sub prepare {
        }
        next if !$path;
 
-       my $size = eval { PVE::Storage::volume_size_info($self->{storecfg}, $volid, 5) };
-       die "no such volume '$volid'\n" if $@;
+       my ($size, $format);
+       if ($storeid) {
+           # The call in list context can be expensive for certain plugins like RBD, just get size
+           $size = eval { PVE::Storage::volume_size_info($self->{storecfg}, $volid, 5) };
+           die "no such volume '$volid'\n" if $@;
 
-       my $scfg = PVE::Storage::storage_config($self->{storecfg}, $storeid);
-       my $format = PVE::QemuServer::qemu_img_format($scfg, $volname);
+           my $scfg = PVE::Storage::storage_config($self->{storecfg}, $storeid);
+           $format = PVE::QemuServer::qemu_img_format($scfg, $volname);
+       } else {
+           ($size, $format) = eval {
+               PVE::Storage::volume_size_info($self->{storecfg}, $volid, 5);
+           };
+           die "no such volume '$volid'\n" if $@;
+       }
 
        my $diskinfo = {
            path => $path,