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