summaryrefslogtreecommitdiff
path: root/lib/btrfsprogs/btrfsinspect/rebuildnodes/scan.go
diff options
context:
space:
mode:
authorLuke Shumaker <lukeshu@lukeshu.com>2022-12-23 16:48:42 -0700
committerLuke Shumaker <lukeshu@lukeshu.com>2022-12-23 19:57:21 -0700
commit6330b26a9f9c7769c48e2bc90e065457f8e138ab (patch)
tree24dc5be9c5cfbe662db8b0684a7f72a8ef021d25 /lib/btrfsprogs/btrfsinspect/rebuildnodes/scan.go
parent8fc3c78924da1dedd3adce3b923adf58e5ca732a (diff)
rebuildnodes: Have the key index belong to the btree, and be smarter
Diffstat (limited to 'lib/btrfsprogs/btrfsinspect/rebuildnodes/scan.go')
-rw-r--r--lib/btrfsprogs/btrfsinspect/rebuildnodes/scan.go13
1 files changed, 5 insertions, 8 deletions
diff --git a/lib/btrfsprogs/btrfsinspect/rebuildnodes/scan.go b/lib/btrfsprogs/btrfsinspect/rebuildnodes/scan.go
index 93d3e0c..bcf2f5b 100644
--- a/lib/btrfsprogs/btrfsinspect/rebuildnodes/scan.go
+++ b/lib/btrfsprogs/btrfsinspect/rebuildnodes/scan.go
@@ -16,7 +16,6 @@ import (
"git.lukeshu.com/btrfs-progs-ng/lib/btrfs/btrfsvol"
"git.lukeshu.com/btrfs-progs-ng/lib/btrfsprogs/btrfsinspect"
"git.lukeshu.com/btrfs-progs-ng/lib/btrfsprogs/btrfsinspect/rebuildnodes/graph"
- "git.lukeshu.com/btrfs-progs-ng/lib/btrfsprogs/btrfsinspect/rebuildnodes/keyio"
"git.lukeshu.com/btrfs-progs-ng/lib/containers"
"git.lukeshu.com/btrfs-progs-ng/lib/textui"
)
@@ -31,12 +30,12 @@ func (s scanStats) String() string {
s.N, s.D)
}
-func ScanDevices(ctx context.Context, fs *btrfs.FS, scanResults btrfsinspect.ScanDevicesResult) (graph.Graph, *keyio.Handle, error) {
+func ScanDevices(ctx context.Context, fs *btrfs.FS, scanResults btrfsinspect.ScanDevicesResult) (graph.Graph, error) {
dlog.Infof(ctx, "Reading node data from FS...")
sb, err := fs.Superblock()
if err != nil {
- return graph.Graph{}, nil, err
+ return graph.Graph{}, err
}
total := countNodes(scanResults)
@@ -47,7 +46,6 @@ func ScanDevices(ctx context.Context, fs *btrfs.FS, scanResults btrfsinspect.Sca
}
nodeGraph := graph.New(*sb)
- keyIO := keyio.NewHandle(fs, *sb, nodeGraph)
progress(done, total)
for _, devResults := range scanResults {
@@ -56,11 +54,10 @@ func ScanDevices(ctx context.Context, fs *btrfs.FS, scanResults btrfsinspect.Sca
LAddr: containers.Optional[btrfsvol.LogicalAddr]{OK: true, Val: laddr},
})
if err != nil {
- return graph.Graph{}, nil, err
+ return graph.Graph{}, err
}
nodeGraph.InsertNode(nodeRef)
- keyIO.InsertNode(nodeRef)
done++
progress(done, total)
@@ -75,10 +72,10 @@ func ScanDevices(ctx context.Context, fs *btrfs.FS, scanResults btrfsinspect.Sca
progressWriter = textui.NewProgress[scanStats](ctx, dlog.LogLevelInfo, 1*time.Second)
dlog.Infof(ctx, "Checking keypointers for dead-ends...")
if err := nodeGraph.FinalCheck(fs, *sb, progress); err != nil {
- return graph.Graph{}, nil, err
+ return graph.Graph{}, err
}
progressWriter.Done()
dlog.Info(ctx, "... done checking keypointers")
- return *nodeGraph, keyIO, nil
+ return *nodeGraph, nil
}