diff options
author | Luke Shumaker <lukeshu@lukeshu.com> | 2023-03-09 16:43:39 -0700 |
---|---|---|
committer | Luke Shumaker <lukeshu@lukeshu.com> | 2023-03-30 10:04:50 -0600 |
commit | 6f1914f5db33a0d4431069eb9378cac68daf8cc0 (patch) | |
tree | f92fd945ea2393431c01a1bd49ac16264673d467 /lib/btrfs/btrfstree/btree_forrest.go | |
parent | d0b7bc25341c936e96a64a540824f77ed79878ce (diff) |
btrfstree: Rethink 'Path' yet again
Diffstat (limited to 'lib/btrfs/btrfstree/btree_forrest.go')
-rw-r--r-- | lib/btrfs/btrfstree/btree_forrest.go | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/lib/btrfs/btrfstree/btree_forrest.go b/lib/btrfs/btrfstree/btree_forrest.go index b04bfc0..1875c2f 100644 --- a/lib/btrfs/btrfstree/btree_forrest.go +++ b/lib/btrfs/btrfstree/btree_forrest.go @@ -22,7 +22,9 @@ type TreeRoot struct { Level uint8 Generation btrfsprim.Generation - RootInode btrfsprim.ObjID // only for subvolume trees + RootInode btrfsprim.ObjID // only for subvolume trees + ParentUUID btrfsprim.UUID + ParentGen btrfsprim.Generation // offset of this tree's root item } // LookupTreeRoot is a utility function to help with implementing the @@ -72,7 +74,10 @@ func LookupTreeRoot(_ context.Context, fs TreeOperator, sb Superblock, treeID bt RootNode: rootItemBody.ByteNr, Level: rootItemBody.Level, Generation: rootItemBody.Generation, + RootInode: rootItemBody.RootDirID, + ParentUUID: rootItemBody.ParentUUID, + ParentGen: btrfsprim.Generation(rootItem.Key.Offset), }, nil case *btrfsitem.Error: return nil, fmt.Errorf("malformed ROOT_ITEM for tree %v: %w", treeID, rootItemBody.Err) @@ -83,10 +88,7 @@ func LookupTreeRoot(_ context.Context, fs TreeOperator, sb Superblock, treeID bt } type TreeOperatorImpl struct { - NodeSource interface { - NodeSource - NodeFile - } + NodeSource NodeSource } func (fs TreeOperatorImpl) RawTree(ctx context.Context, treeID btrfsprim.ObjID) (*RawTree, error) { @@ -108,7 +110,7 @@ func (fs TreeOperatorImpl) RawTree(ctx context.Context, treeID btrfsprim.ObjID) func (fs TreeOperatorImpl) TreeWalk(ctx context.Context, treeID btrfsprim.ObjID, errHandle func(*TreeError), cbs TreeWalkHandler) { tree, err := fs.RawTree(ctx, treeID) if err != nil { - errHandle(&TreeError{Path: Path{{FromTree: treeID, ToMaxKey: btrfsprim.MaxKey}}, Err: err}) + errHandle(&TreeError{Path: Path{PathRoot{TreeID: treeID}}, Err: err}) return } tree.TreeWalk(ctx, cbs) |