btrfs: assert we have a write lock when removing and replacing extent maps
authorFilipe Manana <fdmanana@suse.com>
Thu, 3 Feb 2022 15:36:45 +0000 (15:36 +0000)
committerDavid Sterba <dsterba@suse.com>
Mon, 14 Feb 2022 15:36:03 +0000 (16:36 +0100)
commit9dfb6ee1c93ab9811505664d444605ab638df19c
treecb2f8484d74a20432affac726bb728c611d56d80
parent9dbd1c0df6aecb731827cf84b238b4b86c4c6d0a
btrfs: assert we have a write lock when removing and replacing extent maps

Removing or replacing an extent map requires holding a write lock on the
extent map's tree. We currently do that everywhere, except in one of the
self tests, where it's harmless since there's no concurrency.

In order to catch possible races in the future, assert that we are holding
a write lock on the extent map tree before removing or replacing an extent
map in the tree, and update the self test to obtain a write lock before
removing extent maps.

Reviewed-by: Johannes Thumshirn <johannes.thumshirn@wdc.com>
Signed-off-by: Filipe Manana <fdmanana@suse.com>
Signed-off-by: David Sterba <dsterba@suse.com>
fs/btrfs/extent_map.c
fs/btrfs/tests/extent-map-tests.c