diff options
author | Luke Shumaker <lukeshu@lukeshu.com> | 2022-08-27 19:03:53 -0600 |
---|---|---|
committer | Luke Shumaker <lukeshu@lukeshu.com> | 2022-08-28 11:51:26 -0600 |
commit | 811b5e2c0b9721641ef17630ba046f99721594c7 (patch) | |
tree | 9caf461b7af2223b8b7361f318c62f7839978194 /cmd/btrfs-rec | |
parent | 0d9229ff268951d890c57a9a212afeb7fa89e732 (diff) |
Misc tidy up
Diffstat (limited to 'cmd/btrfs-rec')
-rw-r--r-- | cmd/btrfs-rec/inspect_rebuildnodes.go | 26 |
1 files changed, 4 insertions, 22 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 |