summaryrefslogtreecommitdiff
path: root/cmd/btrfs-rec/inspect/rebuildtrees/rebuild.go
diff options
context:
space:
mode:
authorLuke Shumaker <lukeshu@lukeshu.com>2023-04-02 11:24:13 -0600
committerLuke Shumaker <lukeshu@lukeshu.com>2023-04-04 14:08:38 -0600
commit52143763329ab004ce28d660a8f67eac32fa481c (patch)
treeb2a0c9d6b80a18a97bd4df94e7d525603b832383 /cmd/btrfs-rec/inspect/rebuildtrees/rebuild.go
parent5d2729a4e15dca6e22187cd5de272a2a2d191131 (diff)
btrfsutil: RebuiltTree: Take better advantage of cache pinning
Diffstat (limited to 'cmd/btrfs-rec/inspect/rebuildtrees/rebuild.go')
-rw-r--r--cmd/btrfs-rec/inspect/rebuildtrees/rebuild.go6
1 files changed, 4 insertions, 2 deletions
diff --git a/cmd/btrfs-rec/inspect/rebuildtrees/rebuild.go b/cmd/btrfs-rec/inspect/rebuildtrees/rebuild.go
index 2160969..427070a 100644
--- a/cmd/btrfs-rec/inspect/rebuildtrees/rebuild.go
+++ b/cmd/btrfs-rec/inspect/rebuildtrees/rebuild.go
@@ -198,11 +198,13 @@ func (o *rebuilder) processAddedItemQueue(ctx context.Context) error {
ctx := dlog.WithField(ctx, "btrfs.inspect.rebuild-trees.rebuild.settle.item", key)
tree := o.rebuilt.RebuiltTree(ctx, key.TreeID)
- incPtr, ok := tree.RebuiltItems(ctx).Load(key.Key)
+ incPtr, ok := tree.RebuiltAcquireItems(ctx).Load(key.Key)
+ tree.RebuiltReleaseItems()
if !ok {
panic(fmt.Errorf("should not happen: failed to load already-added item: %v", key))
}
- excPtr, ok := tree.RebuiltPotentialItems(ctx).Load(key.Key)
+ excPtr, ok := tree.RebuiltAcquirePotentialItems(ctx).Load(key.Key)
+ tree.RebuiltReleasePotentialItems()
if ok && tree.RebuiltShouldReplace(incPtr.Node, excPtr.Node) {
wantKey := wantWithTree{
TreeID: key.TreeID,