f26044c83e
This is a regression introduced by the patch "migrate from ll_rw_block
usage to BIO".
Bio_alloc() is limited to 256 pages (1 Mbyte). This can cause a failure
when reading 1 Mbyte block filesystems. The problem is a datablock can be
fully (or almost uncompressed), requiring 256 pages, but, because blocks
are not aligned to page boundaries, it may require 257 pages to read.
Bio_kmalloc() can handle 1024 pages, and so use this for the edge
condition.
Fixes:
|
||
---|---|---|
.. | ||
Kconfig | ||
Makefile | ||
block.c | ||
cache.c | ||
decompressor.c | ||
decompressor.h | ||
decompressor_multi.c | ||
decompressor_multi_percpu.c | ||
decompressor_single.c | ||
dir.c | ||
export.c | ||
file.c | ||
file_cache.c | ||
file_direct.c | ||
fragment.c | ||
id.c | ||
inode.c | ||
lz4_wrapper.c | ||
lzo_wrapper.c | ||
namei.c | ||
page_actor.c | ||
page_actor.h | ||
squashfs.h | ||
squashfs_fs.h | ||
squashfs_fs_i.h | ||
squashfs_fs_sb.h | ||
super.c | ||
symlink.c | ||
xattr.c | ||
xattr.h | ||
xattr_id.c | ||
xz_wrapper.c | ||
zlib_wrapper.c | ||
zstd_wrapper.c |