[GIT PULL] Btrfs fixes for 5.15-rc8

From: David Sterba
Date: Fri Oct 29 2021 - 08:18:34 EST


Hi,

last minute fixes for crash on 32bit architectures when compression is
in use. It's a regression introduced in 5.15-rc and I'd really like not
let this into the final release, fixes via stable trees would add
unnecessary delay.

The problem is on 32bit architectures with highmem enabled, the pages
for compression may need to be kmapped, while the patches removed that
as we don't use GFP_HIGHMEM allocations anymore. The pages that don't
come from local allocation still may be from highmem. Despite being on
32bit there's enough such ARM machines in use so it's not a marginal
issue.

I did full revert of the patches one by one instead of a huge one.
There's one exception for the "lzo" revert as there was an intermediate
patch touching the same code to make it compatible with subpage. I
can't revert that one too, so the revert in lzo.c is manual. Qu Wenruo
has worked on that with me and verified the changes.

Please pull, thanks.

----------------------------------------------------------------
The following changes since commit 4afb912f439c4bc4e6a4f3e7547f2e69e354108f:

btrfs: fix abort logic in btrfs_replace_file_extents (2021-10-07 22:08:06 +0200)

are available in the Git repository at:

git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux.git for-5.15-rc7-tag

for you to fetch changes up to ccaa66c8dd277ac02f96914168bb7177f7ea8117:

Revert "btrfs: compression: drop kmap/kunmap from lzo" (2021-10-29 13:25:43 +0200)

----------------------------------------------------------------
David Sterba (4):
Revert "btrfs: compression: drop kmap/kunmap from generic helpers"
Revert "btrfs: compression: drop kmap/kunmap from zstd"
Revert "btrfs: compression: drop kmap/kunmap from zlib"
Revert "btrfs: compression: drop kmap/kunmap from lzo"

fs/btrfs/compression.c | 3 ++-
fs/btrfs/inode.c | 3 ++-
fs/btrfs/lzo.c | 36 +++++++++++++++++++++++++-----------
fs/btrfs/zlib.c | 36 +++++++++++++++++++++++++-----------
fs/btrfs/zstd.c | 27 ++++++++++++++++++---------
5 files changed, 72 insertions(+), 33 deletions(-)