[pve-devel] [PATCH storage v3 01/13] plugin: export/import: fix calls to path() method

Fiona Ebner f.ebner at proxmox.com
Thu Dec 19 11:43:04 CET 2024


The plugin API does not require call context detection for the
returned value of the path() method. See other plugins like
ISCSIDirect/ZFS that do not implement it. So do not expect it for
external plugins either.

Signed-off-by: Fiona Ebner <f.ebner at proxmox.com>
---

New in v3.

 src/PVE/Storage/Plugin.pm | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/src/PVE/Storage/Plugin.pm b/src/PVE/Storage/Plugin.pm
index 5deff76..92609ad 100644
--- a/src/PVE/Storage/Plugin.pm
+++ b/src/PVE/Storage/Plugin.pm
@@ -1697,7 +1697,7 @@ sub volume_export {
 
     my $err_msg = "volume export format $format not available for $class\n";
     if ($scfg->{path} && !defined($snapshot) && !defined($base_snapshot)) {
-	my $file = $class->path($scfg, $volname, $storeid) or die $err_msg;
+	my ($file) = $class->path($scfg, $volname, $storeid) or die $err_msg;
 	my $file_format = ($class->parse_volname($volname))[6];
 	my $size = file_size_info($file, undef, $file_format);
 
@@ -1731,7 +1731,7 @@ sub volume_export {
 sub volume_export_formats {
     my ($class, $scfg, $storeid, $volname, $snapshot, $base_snapshot, $with_snapshots) = @_;
     if ($scfg->{path} && !defined($snapshot) && !defined($base_snapshot)) {
-	my $file = $class->path($scfg, $volname, $storeid)
+	my ($file) = $class->path($scfg, $volname, $storeid)
 	    or return;
 	my $format = ($class->parse_volname($volname))[6];
 	my $size = file_size_info($file, undef, $format);
@@ -1769,7 +1769,7 @@ sub volume_import {
 
     # Check for an existing file first since interrupting alloc_image doesn't
     # free it.
-    my $file = $class->path($scfg, $volname, $storeid);
+    my ($file) = $class->path($scfg, $volname, $storeid);
     if (-e $file) {
 	die "file '$file' already exists\n" if !$allow_rename;
 	warn "file '$file' already exists - importing with a different name\n";
@@ -1786,7 +1786,7 @@ sub volume_import {
 	if (defined($name) && $allocname ne $oldname) {
 	    die "internal error: unexpected allocated name: '$allocname' != '$oldname'\n";
 	}
-	my $file = $class->path($scfg, $volname, $storeid)
+	my ($file) = $class->path($scfg, $volname, $storeid)
 	    or die "internal error: failed to get path to newly allocated volume $volname\n";
 	if ($data_format eq 'raw' || $data_format eq 'qcow2' || $data_format eq 'vmdk') {
 	    run_command(['dd', "of=$file", 'conv=sparse', 'bs=64k'],
-- 
2.39.5





More information about the pve-devel mailing list