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>
This commit is contained in:
parent
4afb912f43
commit
3a60f6537c
@ -172,9 +172,10 @@ static int check_compressed_csum(struct btrfs_inode *inode, struct bio *bio,
|
||||
/* Hash through the page sector by sector */
|
||||
for (pg_offset = 0; pg_offset < bytes_left;
|
||||
pg_offset += sectorsize) {
|
||||
kaddr = page_address(page);
|
||||
kaddr = kmap_atomic(page);
|
||||
crypto_shash_digest(shash, kaddr + pg_offset,
|
||||
sectorsize, csum);
|
||||
kunmap_atomic(kaddr);
|
||||
|
||||
if (memcmp(&csum, cb_sum, csum_size) != 0) {
|
||||
btrfs_print_data_csum_error(inode, disk_start,
|
||||
|
@ -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;
|
||||
|
Loading…
x
Reference in New Issue
Block a user