summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLuke Shumaker <lukeshu@lukeshu.com>2023-04-04 14:06:31 -0600
committerLuke Shumaker <lukeshu@lukeshu.com>2023-04-04 14:06:31 -0600
commitb0f290078d531d2dcb5d34e809b0711ce9b6491e (patch)
tree01cb01e76eaf75fe3e5e35b5cc9e3df6109dd6aa
parentabad134af95903657b3a35ae69b827bcba22f841 (diff)
parentacd2813582fb2e463780149eebe655d5070f204b (diff)
Merge branch 'lukeshu/errs'
-rw-r--r--lib/btrfs/btrfstree/node_exp.go4
-rw-r--r--lib/btrfsutil/old_rebuilt_forrest.go18
2 files changed, 12 insertions, 10 deletions
diff --git a/lib/btrfs/btrfstree/node_exp.go b/lib/btrfs/btrfstree/node_exp.go
index dec6dbb..f20eee1 100644
--- a/lib/btrfs/btrfstree/node_exp.go
+++ b/lib/btrfs/btrfstree/node_exp.go
@@ -53,11 +53,11 @@ func (exp NodeExpectations) Check(node *Node) error {
} else {
if minItem, _ := node.MinItem(); exp.MinItem.OK && exp.MinItem.Val.Compare(minItem) > 0 {
errs = append(errs, fmt.Errorf("expected minItem>=%v but node has minItem=%v",
- exp.MinItem, minItem))
+ exp.MinItem.Val, minItem))
}
if maxItem, _ := node.MaxItem(); exp.MaxItem.OK && exp.MaxItem.Val.Compare(maxItem) < 0 {
errs = append(errs, fmt.Errorf("expected maxItem<=%v but node has maxItem=%v",
- exp.MaxItem, maxItem))
+ exp.MaxItem.Val, maxItem))
}
}
if len(errs) > 0 {
diff --git a/lib/btrfsutil/old_rebuilt_forrest.go b/lib/btrfsutil/old_rebuilt_forrest.go
index 9035b98..c451fb8 100644
--- a/lib/btrfsutil/old_rebuilt_forrest.go
+++ b/lib/btrfsutil/old_rebuilt_forrest.go
@@ -35,13 +35,14 @@ type oldRebuiltTree struct {
var _ btrfstree.Tree = oldRebuiltTree{}
type oldRebuiltTreeError struct {
- Min btrfsprim.Key
- Max btrfsprim.Key
- Err error
+ Min btrfsprim.Key
+ Max btrfsprim.Key
+ Node btrfsvol.LogicalAddr
+ Err error
}
func (e oldRebuiltTreeError) Error() string {
- return fmt.Sprintf("keys %v-%v: %v", e.Min, e.Max, e.Err)
+ return fmt.Sprintf("keys %v-%v: node@%v: %v", e.Min, e.Max, e.Node, e.Err)
}
func (e oldRebuiltTreeError) Unwrap() error {
@@ -189,11 +190,12 @@ func (bt *OldRebuiltForrest) rawTreeWalk(ctx context.Context, treeID btrfsprim.O
var curNode nodeInfo
cbs := btrfstree.TreeWalkHandler{
BadNode: func(path btrfstree.Path, node *btrfstree.Node, err error) bool {
- _, nodeExp, _ := path.NodeExpectations(ctx, false)
+ nodeAddr, nodeExp, _ := path.NodeExpectations(ctx, false)
cacheEntry.Errors.Insert(oldRebuiltTreeError{
- Min: nodeExp.MinItem.Val,
- Max: nodeExp.MaxItem.Val,
- Err: err,
+ Min: nodeExp.MinItem.Val,
+ Max: nodeExp.MaxItem.Val,
+ Node: nodeAddr,
+ Err: err,
})
return false
},