summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/btrfsprogs/btrfsinspect/rebuildnodes/rebuild.go6
1 files changed, 5 insertions, 1 deletions
diff --git a/lib/btrfsprogs/btrfsinspect/rebuildnodes/rebuild.go b/lib/btrfsprogs/btrfsinspect/rebuildnodes/rebuild.go
index 9f7ce9f..bc4d7c9 100644
--- a/lib/btrfsprogs/btrfsinspect/rebuildnodes/rebuild.go
+++ b/lib/btrfsprogs/btrfsinspect/rebuildnodes/rebuild.go
@@ -264,10 +264,14 @@ func (o *rebuilder) processSettledItemQueue(ctx context.Context) error {
return err
}
ctx := dlog.WithField(ctx, "btrfsinspect.rebuild-nodes.rebuild.process.item", key)
- itemChan <- keyAndBody{
+ item := keyAndBody{
keyAndTree: key,
Body: o.rebuilt.Tree(ctx, key.TreeID).ReadItem(ctx, key.Key),
}
+ select {
+ case itemChan <- item:
+ case <-ctx.Done():
+ }
}
return nil
})