This reverts commit 214d92f0a465f93eea15e702e743f2c63823b1fd.
The backport for linux-5.15.y, commit 214d92f0a465 ("btrfs: avoid monopolizing a core when activating a swap file"), inserted cond_resched() in the wrong location.
Revert it now; a subsequent commit will re-backport the original patch.
Fixes: 214d92f0a465 ("btrfs: avoid monopolizing a core when activating a swap file") # linux-5.15.y Signed-off-by: Koichiro Den koichiro.den@canonical.com --- fs/btrfs/inode.c | 2 -- 1 file changed, 2 deletions(-)
diff --git a/fs/btrfs/inode.c b/fs/btrfs/inode.c index a6b1dd834060..8f048e517e65 100644 --- a/fs/btrfs/inode.c +++ b/fs/btrfs/inode.c @@ -7698,8 +7698,6 @@ noinline int can_nocow_extent(struct inode *inode, u64 offset, u64 *len, ret = -EAGAIN; goto out; } - - cond_resched(); }
btrfs_release_path(path);
From: Filipe Manana fdmanana@suse.com
commit 2c8507c63f5498d4ee4af404a8e44ceae4345056 upstream.
This commit re-attempts the backport of the change to the linux-5.15.y branch. Commit 214d92f0a465 ("btrfs: avoid monopolizing a core when activating a swap file") on this branch was reverted.
During swap activation we iterate over the extents of a file and we can have many thousands of them, so we can end up in a busy loop monopolizing a core. Avoid this by doing a voluntary reschedule after processing each extent.
CC: stable@vger.kernel.org # 5.4+ Reviewed-by: Qu Wenruo wqu@suse.com Signed-off-by: Filipe Manana fdmanana@suse.com Signed-off-by: David Sterba dsterba@suse.com Signed-off-by: Koichiro Den koichiro.den@canonical.com --- fs/btrfs/inode.c | 2 ++ 1 file changed, 2 insertions(+)
diff --git a/fs/btrfs/inode.c b/fs/btrfs/inode.c index 8f048e517e65..d6e43c94436d 100644 --- a/fs/btrfs/inode.c +++ b/fs/btrfs/inode.c @@ -11031,6 +11031,8 @@ static int btrfs_swap_activate(struct swap_info_struct *sis, struct file *file, }
start += len; + + cond_resched(); }
if (bsi.block_len)
[ Sasha's backport helper bot ]
Hi,
No upstream commit was identified. Using temporary commit for testing.
Results of testing on various branches:
| Branch | Patch Apply | Build Test | |---------------------------|-------------|------------| | stable/linux-5.15.y | Success | Failed |
Build Errors: Build error for stable/linux-5.15.y: ssh: connect to host 192.168.1.58 port 22: No route to host
linux-stable-mirror@lists.linaro.org