summaryrefslogtreecommitdiff
path: root/lib/btrfsutil
diff options
context:
space:
mode:
authorLuke Shumaker <lukeshu@lukeshu.com>2023-03-23 21:33:19 -0600
committerLuke Shumaker <lukeshu@lukeshu.com>2023-03-23 21:33:19 -0600
commitbf5eed5af5c34b8cf9dc2985a7c4475602929bb1 (patch)
tree9cb910940a1e16982f5c5012a4fbeb37ba172f82 /lib/btrfsutil
parentf0a9faf21dbe508d57da3b18be9121559c70876a (diff)
parent418553acc64567ebc95122e28b07657526c92923 (diff)
Merge branch 'lukeshu/tree-api-pt1-changes'
Diffstat (limited to 'lib/btrfsutil')
-rw-r--r--lib/btrfsutil/old_rebuilt_forrest.go9
-rw-r--r--lib/btrfsutil/rebuilt_readitem.go9
-rw-r--r--lib/btrfsutil/rebuilt_tree.go2
3 files changed, 11 insertions, 9 deletions
diff --git a/lib/btrfsutil/old_rebuilt_forrest.go b/lib/btrfsutil/old_rebuilt_forrest.go
index bb5ab59..5b99892 100644
--- a/lib/btrfsutil/old_rebuilt_forrest.go
+++ b/lib/btrfsutil/old_rebuilt_forrest.go
@@ -240,10 +240,11 @@ func (bt *OldRebuiltForrest) readNode(nodeInfo nodeInfo) *btrfstree.Node {
LAddr: containers.OptionalValue(nodeInfo.LAddr),
Level: containers.OptionalValue(nodeInfo.Level),
Generation: containers.OptionalValue(nodeInfo.Generation),
- Owner: func(treeID btrfsprim.ObjID) error {
- if treeID != nodeInfo.Owner {
- return fmt.Errorf("expected owner=%v but claims to have owner=%v",
- nodeInfo.Owner, treeID)
+ Owner: func(treeID btrfsprim.ObjID, gen btrfsprim.Generation) error {
+ if treeID != nodeInfo.Owner || gen != nodeInfo.Generation {
+ return fmt.Errorf("expected owner=%v generation=%v but claims to have owner=%v generation=%v",
+ nodeInfo.Owner, nodeInfo.Generation,
+ treeID, gen)
}
return nil
},
diff --git a/lib/btrfsutil/rebuilt_readitem.go b/lib/btrfsutil/rebuilt_readitem.go
index ff919f0..03a7cdc 100644
--- a/lib/btrfsutil/rebuilt_readitem.go
+++ b/lib/btrfsutil/rebuilt_readitem.go
@@ -42,10 +42,11 @@ func (ts *RebuiltForrest) readNode(ctx context.Context, laddr btrfsvol.LogicalAd
LAddr: containers.OptionalValue(laddr),
Level: containers.OptionalValue(graphInfo.Level),
Generation: containers.OptionalValue(graphInfo.Generation),
- Owner: func(treeID btrfsprim.ObjID) error {
- if treeID != graphInfo.Owner {
- return fmt.Errorf("expected owner=%v but claims to have owner=%v",
- graphInfo.Owner, treeID)
+ Owner: func(treeID btrfsprim.ObjID, gen btrfsprim.Generation) error {
+ if treeID != graphInfo.Owner || gen != graphInfo.Generation {
+ return fmt.Errorf("expected owner=%v generation=%v but claims to have owner=%v generation=%v",
+ graphInfo.Owner, graphInfo.Generation,
+ treeID, gen)
}
return nil
},
diff --git a/lib/btrfsutil/rebuilt_tree.go b/lib/btrfsutil/rebuilt_tree.go
index 3fff9b2..96d5a75 100644
--- a/lib/btrfsutil/rebuilt_tree.go
+++ b/lib/btrfsutil/rebuilt_tree.go
@@ -122,7 +122,7 @@ func (tree *RebuiltTree) isOwnerOK(owner btrfsprim.ObjID, gen btrfsprim.Generati
if owner == tree.ID {
return true
}
- if tree.Parent == nil || gen >= tree.ParentGen {
+ if tree.Parent == nil || gen > tree.ParentGen {
return false
}
tree = tree.Parent