btrbk: add known mountpoints to btr_tree nodes as anchor for reverse lookup

pull/235/head
Axel Burri 2018-02-14 22:17:32 +01:00
parent e9374b3b1d
commit f5dc4e0a36
1 changed files with 13 additions and 1 deletions

14
btrbk
View File

@ -2155,6 +2155,16 @@ sub btr_tree($$$$)
}
}
# add known mountpoints to nodes
foreach(@$mountpoints) {
my $node = $id{$_->{subvolid}};
unless($node) {
WARN "Unknown subvolid=$_->{subvolid} (in btrfs tree of $vol_host_spec) for mountpoint: $vol->{URL_PREFIX}$_->{file}";
next;
}
$node->{MOUNTPOINT_URL} = $vol->{URL_PREFIX} . $_->{file};
}
TRACE "btr_tree: returning tree at id=$vol_root->{id}";
VINFO($vol_root, "node") if($loglevel >=4);
@ -2201,7 +2211,8 @@ sub btr_tree_inject_node
sub _fs_path
{
my $node = shift // die;
return '<BTRFS_ROOT>' if($node->{is_root});
return $node->{MOUNTPOINT_URL} if($node->{MOUNTPOINT_URL});
return "<$node->{host_spec}>" if($node->{is_root});
return _fs_path($node->{TOP_LEVEL}) . '/' . $node->{REL_PATH};
}
@ -2478,6 +2489,7 @@ sub vinfo_init_raw_root($;@)
SUBTREE => [],
UUID_HASH => {},
RECEIVED_UUID_HASH => {},
MOUNTPOINT_URL => $droot->{URL},
};
$tree_root->{TREE_ROOT} = $tree_root;