btrbk: use get_btrbk_snapshot_siblings in get_best_parent

action-cp
Axel Burri 2022-06-26 15:16:13 +02:00
parent 5665fae87c
commit c6aa1d7b77
1 changed files with 6 additions and 6 deletions

12
btrbk
View File

@ -3722,18 +3722,18 @@ 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($snaproot && exists($svol->{node}{BTRBK_BASENAME})) { if(defined($svol->{node}{BTRBK_TAG})) {
my $snaproot_btrbk_direct_leaf = vinfo_subvol_list($snaproot, readonly => 1, btrbk_direct_leaf => $svol->{node}{BTRBK_BASENAME}); my $snapshot_siblings = get_btrbk_snapshot_siblings($resolve_sroot, refvol => $svol, readonly => 1);
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 } @$snapshot_siblings;
my @sbdl_newer = sort { cmp_date($a->{node}{BTRBK_DATE}, $b->{node}{BTRBK_DATE}) } my @sbdl_newer = sort { cmp_date($a->{node}{BTRBK_DATE}, $b->{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 } @$snapshot_siblings;
# snapdir_all: btrbk_direct_leaf, ordered by btrbk timestamp # snapdir_all: btrbk snapshot siblings, ordered by btrbk timestamp
$c_map{sao} = [ map { $c_rel_id{$_->{node}{id}} // get_best_correlated($resolve_droot, $_, %gbc_opts) // () } @sbdl_older ]; $c_map{sao} = [ map { $c_rel_id{$_->{node}{id}} // get_best_correlated($resolve_droot, $_, %gbc_opts) // () } @sbdl_older ];
$c_map{san} = [ map { $c_rel_id{$_->{node}{id}} // get_best_correlated($resolve_droot, $_, %gbc_opts) // () } @sbdl_newer ]; $c_map{san} = [ map { $c_rel_id{$_->{node}{id}} // get_best_correlated($resolve_droot, $_, %gbc_opts) // () } @sbdl_newer ];
# snapdir_related: btrbk_direct_leaf with parent_uuid relationship, ordered by btrbk timestamp # snapdir_related: btrbk snapshot siblings, with parent_uuid relationship, ordered by btrbk timestamp
$c_map{sro} = [ map { $c_rel_id{$_->{node}{id}} // () } @sbdl_older ]; $c_map{sro} = [ map { $c_rel_id{$_->{node}{id}} // () } @sbdl_older ];
$c_map{srn} = [ map { $c_rel_id{$_->{node}{id}} // () } @sbdl_newer ]; $c_map{srn} = [ map { $c_rel_id{$_->{node}{id}} // () } @sbdl_newer ];
} }