summaryrefslogtreecommitdiff
path: root/cmd
diff options
context:
space:
mode:
authorLuke Shumaker <lukeshu@lukeshu.com>2023-03-09 16:43:39 -0700
committerLuke Shumaker <lukeshu@lukeshu.com>2023-03-30 10:04:50 -0600
commit6f1914f5db33a0d4431069eb9378cac68daf8cc0 (patch)
treef92fd945ea2393431c01a1bd49ac16264673d467 /cmd
parentd0b7bc25341c936e96a64a540824f77ed79878ce (diff)
btrfstree: Rethink 'Path' yet again
Diffstat (limited to 'cmd')
-rw-r--r--cmd/btrfs-rec/inspect/dumptrees/print_tree.go7
-rw-r--r--cmd/btrfs-rec/inspect_lstrees.go5
2 files changed, 5 insertions, 7 deletions
diff --git a/cmd/btrfs-rec/inspect/dumptrees/print_tree.go b/cmd/btrfs-rec/inspect/dumptrees/print_tree.go
index 7703078..75797a8 100644
--- a/cmd/btrfs-rec/inspect/dumptrees/print_tree.go
+++ b/cmd/btrfs-rec/inspect/dumptrees/print_tree.go
@@ -102,8 +102,7 @@ func printTree(ctx context.Context, out io.Writer, fs *btrfs.FS, treeID btrfspri
printHeaderInfo(out, node)
itemOffset = node.Size - uint32(nodeHeaderSize)
},
- KeyPointer: func(path btrfstree.Path, item btrfstree.KeyPointer) bool {
- treeID := path[0].FromTree
+ KeyPointer: func(_ btrfstree.Path, item btrfstree.KeyPointer) bool {
textui.Fprintf(out, "\tkey %v block %v gen %v\n",
item.Key.Format(treeID),
item.BlockPtr,
@@ -111,13 +110,11 @@ func printTree(ctx context.Context, out io.Writer, fs *btrfs.FS, treeID btrfspri
return true
},
Item: func(path btrfstree.Path, item btrfstree.Item) {
- treeID := path[0].FromTree
- i := path.Node(-1).FromItemSlot
bs, _ := binstruct.Marshal(item.Body)
itemSize := uint32(len(bs))
itemOffset -= itemSize
textui.Fprintf(out, "\titem %v key %v itemoff %v itemsize %v\n",
- i,
+ path[len(path)-1].(btrfstree.PathItem).FromSlot, //nolint:forcetypeassert // has to be
item.Key.Format(treeID),
itemOffset,
itemSize)
diff --git a/cmd/btrfs-rec/inspect_lstrees.go b/cmd/btrfs-rec/inspect_lstrees.go
index bdbdca2..5887983 100644
--- a/cmd/btrfs-rec/inspect_lstrees.go
+++ b/cmd/btrfs-rec/inspect_lstrees.go
@@ -76,10 +76,11 @@ func init() {
},
TreeWalkHandler: btrfstree.TreeWalkHandler{
Node: func(path btrfstree.Path, node *btrfstree.Node) {
- visitedNodes.Insert(path.Node(-1).ToNodeAddr)
+ visitedNodes.Insert(node.Head.Addr)
},
BadNode: func(path btrfstree.Path, node *btrfstree.Node, err error) bool {
- visitedNodes.Insert(path.Node(-1).ToNodeAddr)
+ nodeAddr, _, _ := path.NodeExpectations(ctx, false)
+ visitedNodes.Insert(nodeAddr)
treeErrCnt++
return false
},