linux/fs/erofs
Gao Xiang 0b964600d3 erofs: complete a missing case for inplace I/O
Add a missing case which could cause unnecessary page allocation but
not directly use inplace I/O instead, which increases runtime extra
memory footprint.

The detail is, considering an online file-backed page, the right half
of the page is chosen to be cached (e.g. the end page of a readahead
request) and some of its data doesn't exist in managed cache, so the
pcluster will be definitely kept in the submission chain. (IOWs, it
cannot be decompressed without I/O, e.g., due to the bypass queue).

Currently, DELAYEDALLOC/TRYALLOC cases can be downgraded as NOINPLACE,
and stop online pages from inplace I/O. After this patch, unneeded page
allocations won't be observed in pickup_page_for_submission() then.

Link: https://lore.kernel.org/r/20210321183227.5182-1-hsiangkao@aol.com
Signed-off-by: Gao Xiang <hsiangkao@redhat.com>
2021-03-29 10:18:01 +08:00
..
compress.h erofs: force inplace I/O under low memory scenario 2020-12-09 20:42:02 +08:00
data.c erofs: fix bio->bi_max_vecs behavior change 2021-03-08 10:43:32 +08:00
decompressor.c erofs: avoid memory allocation failure during rolling decompression 2021-03-29 10:18:00 +08:00
dir.c erofs: Replace HTTP links with HTTPS ones 2020-08-03 21:04:29 +08:00
erofs_fs.h erofs: Replace HTTP links with HTTPS ones 2020-08-03 21:04:29 +08:00
inode.c fs: make helpers idmap mount aware 2021-01-24 14:27:20 +01:00
internal.h erofs: use sync decompression for atomic contexts only 2021-03-29 10:18:01 +08:00
Kconfig erofs: support superblock checksum 2019-11-24 11:02:41 +08:00
Makefile erofs: remove a void EROFS_VERSION macro set in Makefile 2020-12-08 18:06:06 +08:00
namei.c erofs: use %pd instead of messing with ->d_name 2021-01-06 19:39:37 -05:00
super.c erofs: use sync decompression for atomic contexts only 2021-03-29 10:18:01 +08:00
tagptr.h
utils.c erofs: fold in used-once helper erofs_workgroup_unfreeze_final() 2020-08-03 21:04:46 +08:00
xattr.c erofs: initialized fields can only be observed after bit is set 2021-02-11 11:55:28 +08:00
xattr.h erofs: Replace HTTP links with HTTPS ones 2020-08-03 21:04:29 +08:00
zdata.c erofs: complete a missing case for inplace I/O 2021-03-29 10:18:01 +08:00
zdata.h erofs: get rid of magical Z_EROFS_MAPPING_STAGING 2020-12-08 18:08:21 +08:00
zmap.c erofs: initialized fields can only be observed after bit is set 2021-02-11 11:55:28 +08:00
zpvec.h erofs: Replace HTTP links with HTTPS ones 2020-08-03 21:04:29 +08:00