diff options
author | Luke Shumaker <lukeshu@lukeshu.com> | 2023-03-29 10:00:18 -0600 |
---|---|---|
committer | Luke Shumaker <lukeshu@lukeshu.com> | 2023-03-30 00:11:57 -0600 |
commit | 2eb7033431866cb05d235eb10c280a4810bf88a7 (patch) | |
tree | 28ace712f93f2300e18442cf418f15fc1fad16d7 /lib/btrfs/io3_btree.go | |
parent | 7f1391d48d63a5f8780dddc41817eaa9df3ce880 (diff) |
btrfstree: Divorce ReadNode from NodeExpectations
Diffstat (limited to 'lib/btrfs/io3_btree.go')
-rw-r--r-- | lib/btrfs/io3_btree.go | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/lib/btrfs/io3_btree.go b/lib/btrfs/io3_btree.go index bb68d7d..4d1ebe3 100644 --- a/lib/btrfs/io3_btree.go +++ b/lib/btrfs/io3_btree.go @@ -86,7 +86,17 @@ func (fs *FS) ReadNode(_ context.Context, addr btrfsvol.LogicalAddr, exp btrfstr if err != nil { return nil, fmt.Errorf("btrfs.FS.ReadNode: %w", err) } - return btrfstree.ReadNode[btrfsvol.LogicalAddr](fs, *sb, addr, exp) + + node, err := btrfstree.ReadNode[btrfsvol.LogicalAddr](fs, *sb, addr) + if err != nil { + return node, err + } + + if err := exp.Check(node); err != nil { + return node, fmt.Errorf("btrfstree.ReadNode: node@%v: %w", addr, err) // fmt.Errorf("btrfs.FS.ReadNode: node@%v: %w", addr, err) + } + + return node, nil } var _ btrfstree.NodeSource = (*FS)(nil) |