[pve-devel] applied: [Patch storage] fix #1770: allow ex/import linked clones.
Wolfgang Bumiller
w.bumiller at proxmox.com
Tue May 22 13:17:47 CEST 2018
applied
On Fri, May 18, 2018 at 02:16:20PM +0200, Wolfgang Link wrote:
> We encode the base-volume-name in the volname what is not needed.
> On ex/import we need the correct dataset name.
> ---
> PVE/Storage/ZFSPoolPlugin.pm | 7 +++++--
> 1 file changed, 5 insertions(+), 2 deletions(-)
>
> diff --git a/PVE/Storage/ZFSPoolPlugin.pm b/PVE/Storage/ZFSPoolPlugin.pm
> index fd63d94..32e53aa 100644
> --- a/PVE/Storage/ZFSPoolPlugin.pm
> +++ b/PVE/Storage/ZFSPoolPlugin.pm
> @@ -674,6 +674,8 @@ sub volume_export {
> die "$class storage can only export snapshots\n"
> if !defined($snapshot);
>
> + my $dataset = ($class->parse_volname($volname))[1];
> +
> my $fd = fileno($fh);
> die "internal error: invalid file handle for volume_export\n"
> if !defined($fd);
> @@ -687,7 +689,7 @@ sub volume_export {
> my $arg = $with_snapshots ? '-I' : '-i';
> push @$cmd, $arg, $base_snapshot;
> }
> - push @$cmd, '--', "$scfg->{pool}/$volname\@$snapshot";
> + push @$cmd, '--', "$scfg->{pool}/$dataset\@$snapshot";
>
> run_command($cmd, output => $fd);
>
> @@ -714,7 +716,8 @@ sub volume_import {
> die "internal error: invalid file handle for volume_import\n"
> if !defined($fd);
>
> - my $zfspath = "$scfg->{pool}/$volname";
> + my $dataset = ($class->parse_volname($volname))[1];
> + my $zfspath = "$scfg->{pool}/$dataset";
> my $suffix = defined($base_snapshot) ? "\@$base_snapshot" : '';
> my $exists = 0 == run_command(['zfs', 'get', '-H', 'name', $zfspath.$suffix],
> noerr => 1, errfunc => sub {});
> --
> 2.11.0
More information about the pve-devel
mailing list