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)
commit01cd390903e00c8f42ba0e84f25a70e3d613a15c
tree02a819b8fa313079209063a53e28156f9da52c30
parentfc7cbcd4890e297de5d6487e04344a99b39de9be
Revert "btrfs: turn fs_info member buffer_radix into XArray"

This reverts commit 8ee922689d67b7cfa6acbe2aa1ee76ac72e6fc8a.

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