diff options
author | Luke Shumaker <lukeshu@lukeshu.com> | 2023-02-28 08:05:47 -0700 |
---|---|---|
committer | Luke Shumaker <lukeshu@lukeshu.com> | 2023-02-28 08:05:47 -0700 |
commit | 996137cdfdff9ec6fbb5c93e21d75b21052e01ae (patch) | |
tree | a6dba9250b1a8d0fd4eadc3806a217833a9133ac /lib/btrfsprogs/btrfsinspect/rebuildnodes/rebuild.go | |
parent | a7a3b5b08557abf7edc6aa4649e85069c3a450b4 (diff) |
rebuildnodes: Fix a data race
Calling FreeNodeRef while an item from that node is still in use is a BAD
TIME.
Diffstat (limited to 'lib/btrfsprogs/btrfsinspect/rebuildnodes/rebuild.go')
-rw-r--r-- | lib/btrfsprogs/btrfsinspect/rebuildnodes/rebuild.go | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/lib/btrfsprogs/btrfsinspect/rebuildnodes/rebuild.go b/lib/btrfsprogs/btrfsinspect/rebuildnodes/rebuild.go index 643fbe7..bc36485 100644 --- a/lib/btrfsprogs/btrfsinspect/rebuildnodes/rebuild.go +++ b/lib/btrfsprogs/btrfsinspect/rebuildnodes/rebuild.go @@ -288,6 +288,7 @@ func (o *rebuilder) processSettledItemQueue(ctx context.Context) error { Key: item.Key, Body: item.Body, }) + item.Body.Free() if item.ItemType == btrfsitem.ROOT_ITEM_KEY { o.treeQueue.Insert(item.ObjectID) } |