From 534673fd8b9c6d8f31f5a412746d5671600ad10d Mon Sep 17 00:00:00 2001 From: Luke Shumaker Date: Sun, 18 Sep 2022 00:09:56 -0600 Subject: wip --- lib/btrfsprogs/btrfsinspect/rebuildnodes/treeancestors.go | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) (limited to 'lib/btrfsprogs/btrfsinspect/rebuildnodes/treeancestors.go') 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) + } + } } } -- cgit v1.2.3-2-g168b