From f5dc4e0a36a7f12ee18a3250d908e76042a8f42a Mon Sep 17 00:00:00 2001 From: Axel Burri Date: Wed, 14 Feb 2018 22:17:32 +0100 Subject: [PATCH] btrbk: add known mountpoints to btr_tree nodes as anchor for reverse lookup --- btrbk | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/btrbk b/btrbk index c4ece72..be01628 100755 --- a/btrbk +++ b/btrbk @@ -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 '' 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;