mirror of https://github.com/digint/btrbk
btrbk: make snaproot optional for get_best_parent
parent
98580418e3
commit
bb704cde74
11
btrbk
11
btrbk
|
@ -3601,12 +3601,12 @@ sub _related_nodes($;@)
|
||||||
|
|
||||||
|
|
||||||
# returns parent, along with clone sources
|
# returns parent, along with clone sources
|
||||||
sub get_best_parent($$$;@)
|
sub get_best_parent($$;@)
|
||||||
{
|
{
|
||||||
my $svol = shift // die;
|
my $svol = shift // die;
|
||||||
my $snaproot = shift // die;
|
|
||||||
my $droot = shift || die;
|
my $droot = shift || die;
|
||||||
my %opts = @_;
|
my %opts = @_;
|
||||||
|
my $snaproot = $opts{snaproot};
|
||||||
my $ret_clone_src = $opts{clone_src};
|
my $ret_clone_src = $opts{clone_src};
|
||||||
my $ret_target_parent_node = $opts{target_parent_node};
|
my $ret_target_parent_node = $opts{target_parent_node};
|
||||||
my $strict_related = $opts{strict_related};
|
my $strict_related = $opts{strict_related};
|
||||||
|
@ -3616,7 +3616,7 @@ sub get_best_parent($$$;@)
|
||||||
# honor incremental_resolve option
|
# honor incremental_resolve option
|
||||||
my $source_incremental_resolve = config_key($svol, "incremental_resolve");
|
my $source_incremental_resolve = config_key($svol, "incremental_resolve");
|
||||||
my $target_incremental_resolve = config_key($droot, "incremental_resolve");
|
my $target_incremental_resolve = config_key($droot, "incremental_resolve");
|
||||||
my $resolve_sroot = ($source_incremental_resolve eq "mountpoint") ? $snaproot->{VINFO_MOUNTPOINT} : $snaproot;
|
my $resolve_sroot = $snaproot ? (($source_incremental_resolve eq "mountpoint") ? $snaproot->{VINFO_MOUNTPOINT} : $snaproot) : $svol->{VINFO_MOUNTPOINT};
|
||||||
my $resolve_droot = ($source_incremental_resolve eq "mountpoint") ? $droot->{VINFO_MOUNTPOINT} : $droot;
|
my $resolve_droot = ($source_incremental_resolve eq "mountpoint") ? $droot->{VINFO_MOUNTPOINT} : $droot;
|
||||||
|
|
||||||
# NOTE: Using parents from different mount points does NOT work, see
|
# NOTE: Using parents from different mount points does NOT work, see
|
||||||
|
@ -3676,7 +3676,7 @@ sub get_best_parent($$$;@)
|
||||||
# A->S, B->S, C->S, delete B: A still has a relation to C.
|
# A->S, B->S, C->S, delete B: A still has a relation to C.
|
||||||
#
|
#
|
||||||
# resolve correlated subvolumes in same directory matching btrbk file name scheme
|
# resolve correlated subvolumes in same directory matching btrbk file name scheme
|
||||||
if(exists($svol->{node}{BTRBK_BASENAME})) {
|
if($snaproot && exists($svol->{node}{BTRBK_BASENAME})) {
|
||||||
my $snaproot_btrbk_direct_leaf = vinfo_subvol_list($snaproot, readonly => 1, btrbk_direct_leaf => $svol->{node}{BTRBK_BASENAME});
|
my $snaproot_btrbk_direct_leaf = vinfo_subvol_list($snaproot, readonly => 1, btrbk_direct_leaf => $svol->{node}{BTRBK_BASENAME});
|
||||||
my @sbdl_older = sort { cmp_date($b->{node}{BTRBK_DATE}, $a->{node}{BTRBK_DATE}) }
|
my @sbdl_older = sort { cmp_date($b->{node}{BTRBK_DATE}, $a->{node}{BTRBK_DATE}) }
|
||||||
grep { cmp_date($_->{node}{BTRBK_DATE}, $svol->{node}{BTRBK_DATE}) < 0 } @$snaproot_btrbk_direct_leaf;
|
grep { cmp_date($_->{node}{BTRBK_DATE}, $svol->{node}{BTRBK_DATE}) < 0 } @$snaproot_btrbk_direct_leaf;
|
||||||
|
@ -6862,7 +6862,8 @@ MAIN:
|
||||||
# Note: strict_related does not make much sense on archive:
|
# Note: strict_related does not make much sense on archive:
|
||||||
# on targets, parent_uuid chain is broken after first prune.
|
# on targets, parent_uuid chain is broken after first prune.
|
||||||
my ($clone_src, $target_parent_node);
|
my ($clone_src, $target_parent_node);
|
||||||
my $parent = get_best_parent($snapshot, $snaproot, $droot,
|
my $parent = get_best_parent($snapshot, $droot,
|
||||||
|
snaproot => $snaproot,
|
||||||
strict_related => ((config_key($droot, "incremental") // "") eq "strict") && !$action_archive,
|
strict_related => ((config_key($droot, "incremental") // "") eq "strict") && !$action_archive,
|
||||||
clone_src => \$clone_src,
|
clone_src => \$clone_src,
|
||||||
target_parent_node => \$target_parent_node,
|
target_parent_node => \$target_parent_node,
|
||||||
|
|
Loading…
Reference in New Issue