btrfs: wait between incomplete batch memory allocations
authorSweet Tea Dorminy <sweettea-kernel@dorminy.me>
Wed, 6 Apr 2022 18:24:18 +0000 (14:24 -0400)
committerDavid Sterba <dsterba@suse.com>
Mon, 16 May 2022 15:03:11 +0000 (17:03 +0200)
commit395cb57e85604715110bc28bd51bdf532394b68d
tree7c1487af39bc4fd0aad7bd56d802e20974141f9a
parent91d6ac1d62c3dc0f102986318f4027ccfa22c638
btrfs: wait between incomplete batch memory allocations

When allocating memory in a loop, each iteration should call
memalloc_retry_wait() in order to prevent starving memory-freeing
processes (and to mark where allocation loops are). Other filesystems do
that as well.

The bulk page allocation is the only place in btrfs with an allocation
retry loop, so add an appropriate call to it.

Signed-off-by: Sweet Tea Dorminy <sweettea-kernel@dorminy.me>
Reviewed-by: David Sterba <dsterba@suse.com>
Signed-off-by: David Sterba <dsterba@suse.com>
fs/btrfs/extent_io.c