[pve-devel] [PATCH storage 1/1] zfs: volume import: use correct format for renaming

Fabian Ebner f.ebner at proxmox.com
Thu Mar 3 13:31:21 CET 2022


Previously, the transport format (which currently is always 'zfs') was
passed in, resulting in subvol-disks not to be renamed correctly.

Fixes: a97d3ee ("Introduce allow_rename parameter for pvesm import and storage_migrate")
Signed-off-by: Fabian Ebner <f.ebner at proxmox.com>
---
 PVE/Storage/ZFSPoolPlugin.pm | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/PVE/Storage/ZFSPoolPlugin.pm b/PVE/Storage/ZFSPoolPlugin.pm
index e952a5c..343f833 100644
--- a/PVE/Storage/ZFSPoolPlugin.pm
+++ b/PVE/Storage/ZFSPoolPlugin.pm
@@ -770,7 +770,9 @@ sub volume_import {
     die "internal error: invalid file handle for volume_import\n"
 	if !defined($fd);
 
-    my (undef, $dataset, $vmid) = $class->parse_volname($volname);
+    my (undef, $dataset, $vmid, undef, undef, undef, $volume_format) =
+	$class->parse_volname($volname);
+
     my $zfspath = "$scfg->{pool}/$dataset";
     my $suffix = defined($base_snapshot) ? "\@$base_snapshot" : '';
     my $exists = 0 == run_command(['zfs', 'get', '-H', 'name', $zfspath.$suffix],
@@ -780,7 +782,7 @@ sub volume_import {
     } elsif ($exists) {
 	die "volume '$zfspath' already exists\n" if !$allow_rename;
 	warn "volume '$zfspath' already exists - importing with a different name\n";
-	$dataset = $class->find_free_diskname($storeid, $scfg, $vmid, $format);
+	$dataset = $class->find_free_diskname($storeid, $scfg, $vmid, $volume_format);
 	$zfspath = "$scfg->{pool}/$dataset";
     }
 
-- 
2.30.2






More information about the pve-devel mailing list