summaryrefslogtreecommitdiff
path: root/lib/btrfs/io2_lv.go
diff options
context:
space:
mode:
authorLuke Shumaker <lukeshu@lukeshu.com>2023-03-02 16:02:42 -0700
committerLuke Shumaker <lukeshu@lukeshu.com>2023-03-30 10:06:52 -0600
commit7c9de305d3dd364d6d76c8869d55a09bf80b28a8 (patch)
tree46f2c74c85b9bf0136d2cd95e917d7fed42c5ba4 /lib/btrfs/io2_lv.go
parent537800d21ae5dd4b95364457ab46d6403bb27f16 (diff)
btrfs: Migrate to the new btrfstree.Forrest API
Diffstat (limited to 'lib/btrfs/io2_lv.go')
-rw-r--r--lib/btrfs/io2_lv.go17
1 files changed, 12 insertions, 5 deletions
diff --git a/lib/btrfs/io2_lv.go b/lib/btrfs/io2_lv.go
index 40fa8e9..e9de215 100644
--- a/lib/btrfs/io2_lv.go
+++ b/lib/btrfs/io2_lv.go
@@ -161,12 +161,15 @@ func (fs *FS) initDev(ctx context.Context, sb btrfstree.Superblock) error {
}
}
}
+ chunkTree, err := fs.ForrestLookup(ctx, btrfsprim.CHUNK_TREE_OBJECTID)
+ if err != nil {
+ return err
+ }
+
var errs derror.MultiError
- fs.TreeWalk(ctx, btrfsprim.CHUNK_TREE_OBJECTID, func(err *btrfstree.TreeError) {
- errs = append(errs, err)
- }, btrfstree.TreeWalkHandler{Item: func(_ btrfstree.Path, item btrfstree.Item) {
+ if err := chunkTree.TreeRange(ctx, func(item btrfstree.Item) bool {
if item.Key.ItemType != btrfsitem.CHUNK_ITEM_KEY {
- return
+ return true
}
switch itemBody := item.Body.(type) {
case *btrfsitem.Chunk:
@@ -183,10 +186,14 @@ func (fs *FS) initDev(ctx context.Context, sb btrfstree.Superblock) error {
// updated.
panic(fmt.Errorf("should not happen: CHUNK_ITEM has unexpected item type: %T", itemBody))
}
- }})
+ return true
+ }); err != nil {
+ errs = append(errs, err)
+ }
if len(errs) > 0 {
return errs
}
+
return nil
}