]> git.baikalelectronics.ru Git - kernel.git/commit
btrfs: reset block group chunk force if we have to wait
authorJosef Bacik <josef@toxicpanda.com>
Mon, 13 Jun 2022 22:31:17 +0000 (18:31 -0400)
committerDavid Sterba <dsterba@suse.com>
Mon, 25 Jul 2022 15:45:38 +0000 (17:45 +0200)
commita0fd1e2ce491c87bb9686767aee859b00b01e72a
treec6971271c66c6573544b7351cbf560671b770fbb
parent7d88e4652a7c891eee3524541f8153c8c321fc08
btrfs: reset block group chunk force if we have to wait

If you try to force a chunk allocation, but you race with another chunk
allocation, you will end up waiting on the chunk allocation that just
occurred and then allocate another chunk.  If you have many threads all
doing this at once you can way over-allocate chunks.

Fix this by resetting force to NO_FORCE, that way if we think we need to
allocate we can, otherwise we don't force another chunk allocation if
one is already happening.

Reviewed-by: Filipe Manana <fdmanana@suse.com>
CC: stable@vger.kernel.org # 5.4+
Signed-off-by: Josef Bacik <josef@toxicpanda.com>
Signed-off-by: David Sterba <dsterba@suse.com>
fs/btrfs/block-group.c