diff options
Diffstat (limited to 'lib/btrfsutil/rebuilt_tree.go')
-rw-r--r-- | lib/btrfsutil/rebuilt_tree.go | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/lib/btrfsutil/rebuilt_tree.go b/lib/btrfsutil/rebuilt_tree.go index a0f5932..0598e05 100644 --- a/lib/btrfsutil/rebuilt_tree.go +++ b/lib/btrfsutil/rebuilt_tree.go @@ -34,6 +34,7 @@ type RebuiltTree struct { Root btrfsvol.LogicalAddr Parent *RebuiltTree ParentGen btrfsprim.Generation // offset of this tree's root item + parentErr error forrest *RebuiltForrest // mutable @@ -553,10 +554,14 @@ var _ btrfstree.Tree = (*RebuiltTree)(nil) // TreeParentID implements btrfstree.Tree. func (tree *RebuiltTree) TreeParentID(_ context.Context) (btrfsprim.ObjID, btrfsprim.Generation, error) { - if tree.Parent == nil { + switch { + case tree.parentErr != nil: + return 0, 0, tree.parentErr + case tree.Parent == nil: return 0, 0, nil + default: + return tree.Parent.ID, tree.ParentGen, nil } - return tree.Parent.ID, tree.ParentGen, nil } // TreeLookup implements btrfstree.Tree. |