summaryrefslogtreecommitdiff
path: root/lib/btrfsutil
diff options
context:
space:
mode:
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