From 4b0f7972047e08416eada9d09cc01aeecfd56244 Mon Sep 17 00:00:00 2001 From: Luke Shumaker Date: Sun, 18 Sep 2022 03:12:04 -0600 Subject: mostly svg! --- lib/btrfsprogs/btrfsinspect/rebuildnodes/scan.go | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) (limited to 'lib/btrfsprogs/btrfsinspect/rebuildnodes/scan.go') diff --git a/lib/btrfsprogs/btrfsinspect/rebuildnodes/scan.go b/lib/btrfsprogs/btrfsinspect/rebuildnodes/scan.go index e17805e..c32ae8e 100644 --- a/lib/btrfsprogs/btrfsinspect/rebuildnodes/scan.go +++ b/lib/btrfsprogs/btrfsinspect/rebuildnodes/scan.go @@ -58,12 +58,25 @@ type nodeGraph struct { func (g nodeGraph) insertEdge(kp kpData) { ptr := &kp + if kp.ToNode == 0 { + panic("kp.ToNode should not be zero") + } g.EdgesFrom[kp.FromNode] = append(g.EdgesFrom[kp.FromNode], ptr) g.EdgesTo[kp.ToNode] = append(g.EdgesTo[kp.ToNode], ptr) } func (g nodeGraph) insertTreeRoot(sb btrfstree.Superblock, treeID btrfsprim.ObjID) { - treeInfo, _ := btrfstree.LookupTreeRoot(nil, sb, treeID) + treeInfo, err := btrfstree.LookupTreeRoot(nil, sb, treeID) + if err != nil { + // This shouldn't ever happen for treeIDs that are + // mentioned directly in the superblock; which are the + // only trees for which we should call + // .insertTreeRoot(). + panic(fmt.Errorf("LookupTreeRoot(%v): %w", treeID, err)) + } + if treeInfo.RootNode == 0 { + return + } g.insertEdge(kpData{ FromTree: treeID, ToNode: treeInfo.RootNode, -- cgit v1.2.3-2-g168b