diff options
author | David Sterba <dsterba@suse.com> | 2021-10-27 11:39:03 +0300 |
---|---|---|
committer | David Sterba <dsterba@suse.com> | 2021-10-27 11:39:03 +0300 |
commit | 3a60f6537c9adf0828bf1dd868c59f659395257e (patch) | |
tree | 91badc6240f4bdaae0653b087242cb8510f47c52 /fs/btrfs/inode.c | |
parent | 4afb912f439c4bc4e6a4f3e7547f2e69e354108f (diff) | |
download | linux-3a60f6537c9adf0828bf1dd868c59f659395257e.tar.xz |
Revert "btrfs: compression: drop kmap/kunmap from generic helpers"
This reverts commit 4c2bf276b56d8d27ddbafcdf056ef3fc60ae50b0.
The kmaps in compression code are still needed and cause crashes on
32bit machines (ARM, x86). Reproducible eg. by running fstest btrfs/004
with enabled LZO or ZSTD compression.
Link: https://lore.kernel.org/all/CAJCQCtT+OuemovPO7GZk8Y8=qtOObr0XTDp8jh4OHD6y84AFxw@mail.gmail.com/
Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=214839
Signed-off-by: David Sterba <dsterba@suse.com>
Diffstat (limited to 'fs/btrfs/inode.c')
-rw-r--r-- | fs/btrfs/inode.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/fs/btrfs/inode.c b/fs/btrfs/inode.c index 2aa9646bce56..e6772f55943e 100644 --- a/fs/btrfs/inode.c +++ b/fs/btrfs/inode.c @@ -287,8 +287,9 @@ static int insert_inline_extent(struct btrfs_trans_handle *trans, cur_size = min_t(unsigned long, compressed_size, PAGE_SIZE); - kaddr = page_address(cpage); + kaddr = kmap_atomic(cpage); write_extent_buffer(leaf, kaddr, ptr, cur_size); + kunmap_atomic(kaddr); i++; ptr += cur_size; |