Commit 3a60f653 authored by David Sterba's avatar David Sterba

Revert "btrfs: compression: drop kmap/kunmap from generic helpers"

This reverts commit 4c2bf276.

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=214839Signed-off-by: default avatarDavid Sterba <dsterba@suse.com>
parent 4afb912f
...@@ -172,9 +172,10 @@ static int check_compressed_csum(struct btrfs_inode *inode, struct bio *bio, ...@@ -172,9 +172,10 @@ static int check_compressed_csum(struct btrfs_inode *inode, struct bio *bio,
/* Hash through the page sector by sector */ /* Hash through the page sector by sector */
for (pg_offset = 0; pg_offset < bytes_left; for (pg_offset = 0; pg_offset < bytes_left;
pg_offset += sectorsize) { pg_offset += sectorsize) {
kaddr = page_address(page); kaddr = kmap_atomic(page);
crypto_shash_digest(shash, kaddr + pg_offset, crypto_shash_digest(shash, kaddr + pg_offset,
sectorsize, csum); sectorsize, csum);
kunmap_atomic(kaddr);
if (memcmp(&csum, cb_sum, csum_size) != 0) { if (memcmp(&csum, cb_sum, csum_size) != 0) {
btrfs_print_data_csum_error(inode, disk_start, btrfs_print_data_csum_error(inode, disk_start,
......
...@@ -287,8 +287,9 @@ static int insert_inline_extent(struct btrfs_trans_handle *trans, ...@@ -287,8 +287,9 @@ static int insert_inline_extent(struct btrfs_trans_handle *trans,
cur_size = min_t(unsigned long, compressed_size, cur_size = min_t(unsigned long, compressed_size,
PAGE_SIZE); PAGE_SIZE);
kaddr = page_address(cpage); kaddr = kmap_atomic(cpage);
write_extent_buffer(leaf, kaddr, ptr, cur_size); write_extent_buffer(leaf, kaddr, ptr, cur_size);
kunmap_atomic(kaddr);
i++; i++;
ptr += cur_size; ptr += cur_size;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment