Trying to back up a container with a ZFS dataset with non-standard mount would fail, see [0].
This also removes the near-dead code $name .= "\@$snapname"; when snapname is false-y, but defined and turns the check for $snapname into one for definedness. [0]: https://forum.proxmox.com/threads/lxc-backup-fails-unable-to-open-the-dataset-vzdump.64944/ Signed-off-by: Fabian Ebner <f.eb...@proxmox.com> --- Hopefully there is nothing that relies on the old behavior with $snapname. Or was it intended to be able to reach the 'zfs set acl' call with $snapname set? src/PVE/LXC.pm | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/src/PVE/LXC.pm b/src/PVE/LXC.pm index 34ca2a3..21bc9c6 100644 --- a/src/PVE/LXC.pm +++ b/src/PVE/LXC.pm @@ -1647,19 +1647,17 @@ sub __mountpoint_mount { if ($format eq 'subvol') { if ($mount_path) { - if ($snapname) { + my (undef, $name) = PVE::Storage::parse_volname($storage_cfg, $volid); + if (defined($snapname)) { + $name .= "\@$snapname"; if ($scfg->{type} eq 'zfspool') { - my $path_arg = $path; - $path_arg =~ s!^/+!!; - PVE::Tools::run_command(['mount', '-o', 'ro', @extra_opts, '-t', 'zfs', $path_arg, $mount_path]); + PVE::Tools::run_command(['mount', '-o', 'ro', @extra_opts, '-t', 'zfs', "$scfg->{pool}/$name", $mount_path]); } else { die "cannot mount subvol snapshots for storage type '$scfg->{type}'\n"; } } else { if (defined($acl) && $scfg->{type} eq 'zfspool') { my $acltype = ($acl ? 'acltype=posixacl' : 'acltype=noacl'); - my (undef, $name) = PVE::Storage::parse_volname($storage_cfg, $volid); - $name .= "\@$snapname" if defined($snapname); PVE::Tools::run_command(['zfs', 'set', $acltype, "$scfg->{pool}/$name"]); } bindmount($path, $parentfd, $last_dir//$rootdir, $mount_path, $readonly, @extra_opts); -- 2.20.1 _______________________________________________ pve-devel mailing list pve-devel@pve.proxmox.com https://pve.proxmox.com/cgi-bin/mailman/listinfo/pve-devel