]> git.baikalelectronics.ru Git - kernel.git/commit
Revert "btrfs: turn fs_info member buffer_radix into XArray"
authorDavid Sterba <dsterba@suse.com>
Fri, 15 Jul 2022 11:59:31 +0000 (13:59 +0200)
committerDavid Sterba <dsterba@suse.com>
Fri, 15 Jul 2022 17:14:33 +0000 (19:14 +0200)
commit58b77ec493b903626af3376ff4e53972b4d7e7e0
tree02a819b8fa313079209063a53e28156f9da52c30
parent76026314416500dbae6e467cb5056f8aa5caf0f4
Revert "btrfs: turn fs_info member buffer_radix into XArray"

This reverts commit b6255fe95023d318b26393dca0eb1dbf74863eb2.

Revert the xarray conversion, there's a problem with potential
sleep-inside-spinlock [1] when calling xa_insert that triggers GFP_NOFS
allocation. The radix tree used the preloading mechanism to avoid
sleeping but this is not available in xarray.

Conversion from spin lock to mutex is possible but at time of rc6 is
riskier than a clean revert.

[1] https://lore.kernel.org/linux-btrfs/cover.1657097693.git.fdmanana@suse.com/

Reported-by: Filipe Manana <fdmanana@suse.com>
Signed-off-by: David Sterba <dsterba@suse.com>
fs/btrfs/ctree.h
fs/btrfs/disk-io.c
fs/btrfs/extent_io.c
fs/btrfs/tests/btrfs-tests.c