summaryrefslogtreecommitdiff
path: root/cmd/btrfs-rec/inspect/rebuildtrees/scan.go
diff options
context:
space:
mode:
Diffstat (limited to 'cmd/btrfs-rec/inspect/rebuildtrees/scan.go')
-rw-r--r--cmd/btrfs-rec/inspect/rebuildtrees/scan.go21
1 files changed, 10 insertions, 11 deletions
diff --git a/cmd/btrfs-rec/inspect/rebuildtrees/scan.go b/cmd/btrfs-rec/inspect/rebuildtrees/scan.go
index 17949ab..03261e0 100644
--- a/cmd/btrfs-rec/inspect/rebuildtrees/scan.go
+++ b/cmd/btrfs-rec/inspect/rebuildtrees/scan.go
@@ -2,7 +2,7 @@
//
// SPDX-License-Identifier: GPL-2.0-or-later
-package rebuildnodes
+package rebuildtrees
import (
"context"
@@ -10,22 +10,21 @@ import (
"github.com/datawire/dlib/dlog"
+ "git.lukeshu.com/btrfs-progs-ng/cmd/btrfs-rec/inspect/rebuildmappings"
"git.lukeshu.com/btrfs-progs-ng/lib/btrfs"
"git.lukeshu.com/btrfs-progs-ng/lib/btrfs/btrfstree"
"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/btrfsutil"
"git.lukeshu.com/btrfs-progs-ng/lib/containers"
"git.lukeshu.com/btrfs-progs-ng/lib/maps"
"git.lukeshu.com/btrfs-progs-ng/lib/textui"
)
-func ScanDevices(ctx context.Context, fs *btrfs.FS, scanResults btrfsinspect.ScanDevicesResult) (btrfstree.Superblock, graph.Graph, *keyio.Handle, error) {
+func ScanDevices(ctx context.Context, fs *btrfs.FS, scanResults rebuildmappings.ScanDevicesResult) (btrfstree.Superblock, btrfsutil.Graph, *btrfsutil.KeyIO, error) {
dlog.Info(ctx, "Reading superblock...")
sb, err := fs.Superblock()
if err != nil {
- return btrfstree.Superblock{}, graph.Graph{}, nil, err
+ return btrfstree.Superblock{}, btrfsutil.Graph{}, nil, err
}
dlog.Infof(ctx, "Reading node data from FS...")
@@ -36,21 +35,21 @@ func ScanDevices(ctx context.Context, fs *btrfs.FS, scanResults btrfsinspect.Sca
dlog.WithField(ctx, "btrfsinspect.rebuild-nodes.read.substep", "read-nodes"),
dlog.LogLevelInfo, textui.Tunable(1*time.Second))
- nodeGraph := graph.New(*sb)
- keyIO := keyio.NewHandle(fs, *sb)
+ nodeGraph := btrfsutil.NewGraph(*sb)
+ keyIO := btrfsutil.NewKeyIO(fs, *sb)
progressWriter.Set(stats)
for _, devResults := range scanResults {
for _, laddr := range maps.SortedKeys(devResults.FoundNodes) {
if err := ctx.Err(); err != nil {
- return btrfstree.Superblock{}, graph.Graph{}, nil, err
+ return btrfstree.Superblock{}, btrfsutil.Graph{}, nil, err
}
nodeRef, err := btrfstree.ReadNode[btrfsvol.LogicalAddr](fs, *sb, laddr, btrfstree.NodeExpectations{
LAddr: containers.Optional[btrfsvol.LogicalAddr]{OK: true, Val: laddr},
})
if err != nil {
btrfstree.FreeNodeRef(nodeRef)
- return btrfstree.Superblock{}, graph.Graph{}, nil, err
+ return btrfstree.Superblock{}, btrfsutil.Graph{}, nil, err
}
nodeGraph.InsertNode(nodeRef)
@@ -69,7 +68,7 @@ func ScanDevices(ctx context.Context, fs *btrfs.FS, scanResults btrfsinspect.Sca
dlog.Info(ctx, "... done reading node data")
if err := nodeGraph.FinalCheck(ctx, fs, *sb); err != nil {
- return btrfstree.Superblock{}, graph.Graph{}, nil, err
+ return btrfstree.Superblock{}, btrfsutil.Graph{}, nil, err
}
keyIO.SetGraph(*nodeGraph)