diff options
author | Luke Shumaker <lukeshu@lukeshu.com> | 2022-09-18 00:09:56 -0600 |
---|---|---|
committer | Luke Shumaker <lukeshu@lukeshu.com> | 2022-09-18 00:09:56 -0600 |
commit | 534673fd8b9c6d8f31f5a412746d5671600ad10d (patch) | |
tree | b07d2cad04a2e555d4f0dbf4569955a9f1dbcbf2 /lib/btrfsprogs/btrfsinspect/rebuildnodes/treeancestors.go | |
parent | 525adfb185a0a73f38f9c0acaa748f5ebd825e1f (diff) |
wip
Diffstat (limited to 'lib/btrfsprogs/btrfsinspect/rebuildnodes/treeancestors.go')
-rw-r--r-- | lib/btrfsprogs/btrfsinspect/rebuildnodes/treeancestors.go | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/lib/btrfsprogs/btrfsinspect/rebuildnodes/treeancestors.go b/lib/btrfsprogs/btrfsinspect/rebuildnodes/treeancestors.go index 2e1d856..c396a13 100644 --- a/lib/btrfsprogs/btrfsinspect/rebuildnodes/treeancestors.go +++ b/lib/btrfsprogs/btrfsinspect/rebuildnodes/treeancestors.go @@ -5,11 +5,15 @@ package rebuildnodes import ( + "context" + + //"github.com/datawire/dlib/dlog" + "git.lukeshu.com/btrfs-progs-ng/lib/btrfs/btrfsprim" "git.lukeshu.com/btrfs-progs-ng/lib/containers" ) -func getTreeAncestors(scanData scanResult) map[btrfsprim.ObjID]containers.Set[btrfsprim.ObjID] { +func getTreeAncestors(ctx context.Context, scanData scanResult) map[btrfsprim.ObjID]containers.Set[btrfsprim.ObjID] { treeAncestors := make(map[btrfsprim.ObjID]containers.Set[btrfsprim.ObjID]) for laddr, node := range scanData.Nodes { @@ -17,7 +21,13 @@ func getTreeAncestors(scanData scanResult) map[btrfsprim.ObjID]containers.Set[bt treeAncestors[node.Owner] = make(containers.Set[btrfsprim.ObjID]) } for _, edge := range scanData.EdgesTo[laddr] { - treeAncestors[node.Owner].Insert(edge.FromTree) + if edge.FromTree != node.Owner { + if err := checkNodeExpectations(*edge, node); err != nil { + //dlog.Errorf(ctx, "... ignoring keypointer %v because %v", edge.String(), err) + } else { + treeAncestors[node.Owner].Insert(edge.FromTree) + } + } } } |