From: Filipe Manana <redacted>
This fixes a deadlock between a task allocating a metadata or data chunk
and a task that is modifying the chunk btree and it's not in a chunk
allocation or removal context. The first patch is the fix, the second one
just updates a couple comments and it's independent of the fix.
v2: Updated stale comment after the fix (patch 1/2).
v3: Moved the logic to reserve chunk space out of btrfs_search_slot() into
every path that modifies the chunk btree (which are the cases listed in
the change log of patch 1/2) and updated two more comments in patch 1/2.
Filipe Manana (2):
btrfs: fix deadlock between chunk allocation and chunk btree modifications
btrfs: update comments for chunk allocation -ENOSPC cases
fs/btrfs/block-group.c | 166 +++++++++++++++++++++++++++--------------
fs/btrfs/block-group.h | 2 +
fs/btrfs/relocation.c | 4 +
fs/btrfs/volumes.c | 15 +++-
4 files changed, 128 insertions(+), 59 deletions(-)
--
2.33.0