summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFilipe Manana <fdmanana@suse.com>2025-06-02 13:46:23 +0100
committerDavid Sterba <dsterba@suse.com>2025-07-21 23:53:30 +0200
commit2697b6159744e5afae0f7715da9f830ba6f9e45a (patch)
treee8f38fb2dbcbc2a0bd38ce2b7fb0f44cdab04c3d
parent71c086b30d4373a01bd5627f54516a72891a026a (diff)
btrfs: add comment for optimization in free_extent_buffer()
There's this special atomic compare and exchange logic which serves to avoid locking the extent buffers refs_lock spinlock and therefore reduce lock contention, so add a comment to make it more obvious. Reviewed-by: Boris Burkov <boris@bur.io> Signed-off-by: Filipe Manana <fdmanana@suse.com> Reviewed-by: David Sterba <dsterba@suse.com> Signed-off-by: David Sterba <dsterba@suse.com>
-rw-r--r--fs/btrfs/extent_io.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/fs/btrfs/extent_io.c b/fs/btrfs/extent_io.c
index 21d2cb7f538e..5e8dd9a99e58 100644
--- a/fs/btrfs/extent_io.c
+++ b/fs/btrfs/extent_io.c
@@ -3493,6 +3493,7 @@ void free_extent_buffer(struct extent_buffer *eb)
break;
}
+ /* Optimization to avoid locking eb->refs_lock. */
if (atomic_try_cmpxchg(&eb->refs, &refs, refs - 1))
return;
}