summaryrefslogtreecommitdiff
path: root/lib/btrfs/btrfstree/btree_forrest.go
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/btrfs/btrfstree/btree_forrest.go
parentf0a9faf21dbe508d57da3b18be9121559c70876a (diff)
parent418553acc64567ebc95122e28b07657526c92923 (diff)
Merge branch 'lukeshu/tree-api-pt1-changes'
Diffstat (limited to 'lib/btrfs/btrfstree/btree_forrest.go')
-rw-r--r--lib/btrfs/btrfstree/btree_forrest.go5
1 files changed, 4 insertions, 1 deletions
diff --git a/lib/btrfs/btrfstree/btree_forrest.go b/lib/btrfs/btrfstree/btree_forrest.go
index 8f8e2de..38a2721 100644
--- a/lib/btrfs/btrfstree/btree_forrest.go
+++ b/lib/btrfs/btrfstree/btree_forrest.go
@@ -21,6 +21,8 @@ type TreeRoot struct {
RootNode btrfsvol.LogicalAddr
Level uint8
Generation btrfsprim.Generation
+
+ RootInode btrfsprim.ObjID // only for subvolume trees
}
// LookupTreeRoot is a utility function to help with implementing the
@@ -59,7 +61,7 @@ func LookupTreeRoot(_ context.Context, fs TreeOperator, sb Superblock, treeID bt
rootItem, err := fs.TreeSearch(btrfsprim.ROOT_TREE_OBJECTID, SearchRootItem(treeID))
if err != nil {
if errors.Is(err, ErrNoItem) {
- err = ErrNoTree
+ err = fmt.Errorf("%w: %s", ErrNoTree, err)
}
return nil, fmt.Errorf("tree %s: %w", treeID.Format(btrfsprim.ROOT_TREE_OBJECTID), err)
}
@@ -70,6 +72,7 @@ func LookupTreeRoot(_ context.Context, fs TreeOperator, sb Superblock, treeID bt
RootNode: rootItemBody.ByteNr,
Level: rootItemBody.Level,
Generation: rootItemBody.Generation,
+ RootInode: rootItemBody.RootDirID,
}, nil
case *btrfsitem.Error:
return nil, fmt.Errorf("malformed ROOT_ITEM for tree %v: %w", treeID, rootItemBody.Err)