[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