From 811b5e2c0b9721641ef17630ba046f99721594c7 Mon Sep 17 00:00:00 2001
From: Luke Shumaker <lukeshu@lukeshu.com>
Date: Sat, 27 Aug 2022 19:03:53 -0600
Subject: Misc tidy up

---
 cmd/btrfs-rec/inspect_rebuildnodes.go              | 26 ++++------------------
 lib/btrfs/io3_btree.go                             |  3 ---
 .../btrfsinspect/rebuildmappings/fuzzymatchsums.go |  3 +--
 3 files changed, 5 insertions(+), 27 deletions(-)

diff --git a/cmd/btrfs-rec/inspect_rebuildnodes.go b/cmd/btrfs-rec/inspect_rebuildnodes.go
index 869d51f..2d5cc60 100644
--- a/cmd/btrfs-rec/inspect_rebuildnodes.go
+++ b/cmd/btrfs-rec/inspect_rebuildnodes.go
@@ -10,7 +10,6 @@ import (
 	"fmt"
 	"math"
 	"os"
-	"runtime"
 	"sort"
 
 	"github.com/datawire/dlib/dlog"
@@ -35,11 +34,10 @@ func init() {
 			ctx := cmd.Context()
 
 			dlog.Infof(ctx, "Reading %q...", args[0])
-			nodeScanResults, err := readNodeScanResults(args[0])
+			nodeScanResults, err := readScanResults(args[0])
 			if err != nil {
 				return err
 			}
-			runtime.GC()
 			dlog.Infof(ctx, "... done reading %q", args[0])
 
 			dlog.Info(ctx, "Identifying lost+found nodes...")
@@ -75,22 +73,6 @@ func init() {
 	})
 }
 
-type NodeScanResults = map[btrfsvol.DeviceID]btrfsinspect.ScanOneDeviceResult
-
-func readNodeScanResults(filename string) (NodeScanResults, error) {
-	scanResultsBytes, err := os.ReadFile(filename)
-	if err != nil {
-		return nil, err
-	}
-
-	var scanResults NodeScanResults
-	if err := json.Unmarshal(scanResultsBytes, &scanResults); err != nil {
-		return nil, err
-	}
-
-	return scanResults, nil
-}
-
 var maxKey = btrfs.Key{
 	ObjectID: math.MaxUint64,
 	ItemType: math.MaxUint8,
@@ -156,7 +138,7 @@ func walkFromNode(ctx context.Context, fs *btrfs.FS, nodeAddr btrfsvol.LogicalAd
 	fs.RawTreeWalk(ctx, treeInfo, errHandle, cbs)
 }
 
-func countNodes(nodeScanResults NodeScanResults) int {
+func countNodes(nodeScanResults btrfsinspect.ScanDevicesResult) int {
 	var cnt int
 	for _, devResults := range nodeScanResults {
 		cnt += len(devResults.FoundNodes)
@@ -164,7 +146,7 @@ func countNodes(nodeScanResults NodeScanResults) int {
 	return cnt
 }
 
-func lostAndFoundNodes(ctx context.Context, fs *btrfs.FS, nodeScanResults NodeScanResults) (map[btrfsvol.LogicalAddr]struct{}, error) {
+func lostAndFoundNodes(ctx context.Context, fs *btrfs.FS, nodeScanResults btrfsinspect.ScanDevicesResult) (map[btrfsvol.LogicalAddr]struct{}, error) {
 	lastPct := -1
 	total := countNodes(nodeScanResults)
 	progress := func(done int) {
@@ -267,7 +249,7 @@ type rebuiltNode struct {
 	btrfs.Node
 }
 
-func reInitBrokenNodes(ctx context.Context, fs *btrfs.FS, nodeScanResults NodeScanResults, foundRoots map[btrfsvol.LogicalAddr]struct{}) (map[btrfsvol.LogicalAddr]*rebuiltNode, error) {
+func reInitBrokenNodes(ctx context.Context, fs *btrfs.FS, nodeScanResults btrfsinspect.ScanDevicesResult, foundRoots map[btrfsvol.LogicalAddr]struct{}) (map[btrfsvol.LogicalAddr]*rebuiltNode, error) {
 	sb, err := fs.Superblock()
 	if err != nil {
 		return nil, err
diff --git a/lib/btrfs/io3_btree.go b/lib/btrfs/io3_btree.go
index 2efef89..7404b6c 100644
--- a/lib/btrfs/io3_btree.go
+++ b/lib/btrfs/io3_btree.go
@@ -397,9 +397,6 @@ func (fs *FS) treeWalk(ctx context.Context, path TreePath, errHandle func(*TreeE
 		if err := cbs.PostNode(path, node); err != nil {
 			errHandle(&TreeError{Path: path, Err: err})
 		}
-		if ctx.Err() != nil {
-			return
-		}
 	}
 }
 
diff --git a/lib/btrfsprogs/btrfsinspect/rebuildmappings/fuzzymatchsums.go b/lib/btrfsprogs/btrfsinspect/rebuildmappings/fuzzymatchsums.go
index d326299..fa2592e 100644
--- a/lib/btrfsprogs/btrfsinspect/rebuildmappings/fuzzymatchsums.go
+++ b/lib/btrfsprogs/btrfsinspect/rebuildmappings/fuzzymatchsums.go
@@ -42,9 +42,8 @@ func fuzzyMatchBlockGroupSums(ctx context.Context,
 	physicalSums map[btrfsvol.DeviceID]btrfssum.SumRun[btrfsvol.PhysicalAddr],
 	logicalSums btrfssum.SumRunWithGaps[btrfsvol.LogicalAddr],
 ) error {
-	regions := ListUnmappedPhysicalRegions(fs)
-
 	dlog.Info(ctx, "... Indexing physical regions...") // O(m)
+	regions := ListUnmappedPhysicalRegions(fs)
 	physicalIndex := make(map[btrfssum.ShortSum][]btrfsvol.QualifiedPhysicalAddr)
 	if err := WalkUnmappedPhysicalRegions(ctx, physicalSums, regions, func(devID btrfsvol.DeviceID, region btrfssum.SumRun[btrfsvol.PhysicalAddr]) error {
 		return region.Walk(ctx, func(paddr btrfsvol.PhysicalAddr, sum btrfssum.ShortSum) error {
-- 
cgit v1.2.3-2-g168b