diff options
| author | Filipe Manana <fdmanana@suse.com> | 2026-09-18 11:58:00 +0100 |
|---|---|---|
| committer | David Sterba <dsterba@suse.com> | 2026-10-05 16:05:43 +0200 |
| commit | 3e6ff34afc7ec7a6156e58502b5a56771517cf93 (patch) | |
| tree | c230db8e1c1c6e88d7d0fefd5d79a7c1a6acf256 /tools/lib/python/kdoc/python_version.py | |
| parent | 72de4807ba84da485dda1a91572d66da9149e95a (diff) | |
| download | linux-next-3e6ff34afc7ec7a6156e58502b5a56771517cf93.tar.gz linux-next-3e6ff34afc7ec7a6156e58502b5a56771517cf93.zip | |
btrfs: clear BTRFS_ROOT_IN_TRANS_SETUP on early exit from record_root_in_trans()
If we exit early because the transaction that last used the root already
matches the current transaction, we leave the BTRFS_ROOT_IN_TRANS_SETUP
bit set in the root (which we just set right before the exit). While this
does not cause any functional issue, it makes callers of
btrfs_record_root_in_trans() lock fs_info->reloc_mutex and call
record_root_in_trans() for nothing, causing unnecessary lock contention,
until one of them clears the bit in record_root_in_trans().
One caller of btrfs_record_root_in_trans() is start_transaction(), used to
start new transaction or joining an existing one, which is a hot path.
So clear BTRFS_ROOT_IN_TRANS_SETUP on early exit.
Assisted-by: LLM
Reviewed-by: Boris Burkov <boris@bur.io>
Reviewed-by: Qu Wenruo <wqu@suse.com>
Signed-off-by: Filipe Manana <fdmanana@suse.com>
Signed-off-by: David Sterba <dsterba@suse.com>
Diffstat (limited to 'tools/lib/python/kdoc/python_version.py')
0 files changed, 0 insertions, 0 deletions
