android_kernel_samsung_sm8650/fs/erofs
Gao Xiang 1ce9ebc96e erofs: ensure that the post-EOF tails are all zeroed
commit e4c1cf523d820730a86cae2c6d55924833b6f7ac upstream.

This was accidentally fixed up in commit e4c1cf523d82 but we can't
take the full change due to other dependancy issues, so here is just
the actual bugfix that is needed.

[Background]

keltargw reported an issue [1] that with mmaped I/Os, sometimes the
tail of the last page (after file ends) is not filled with zeroes.

The root cause is that such tail page could be wrongly selected for
inplace I/Os so the zeroed part will then be filled with compressed
data instead of zeroes.

A simple fix is to avoid doing inplace I/Os for such tail parts,
actually that was already fixed upstream in commit e4c1cf523d82
("erofs: tidy up z_erofs_do_read_page()") by accident.

[1] https://lore.kernel.org/r/3ad8b469-25db-a297-21f9-75db2d6ad224@linux.alibaba.com

Reported-by: keltargw <keltar.gw@gmail.com>
Fixes: 3883a79abd ("staging: erofs: introduce VLE decompression support")
Signed-off-by: Gao Xiang <hsiangkao@linux.alibaba.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2023-09-06 21:26:59 +01:00
..
compress.h erofs: introduce multi-reference pclusters (fully-referenced) 2022-07-22 21:44:27 +08:00
data.c erofs: simplify iloc() 2023-07-19 16:20:59 +02:00
decompressor_lzma.c erofs: fix wrong kunmap when using LZMA on HIGHMEM platforms 2023-03-17 08:50:14 +01:00
decompressor.c erofs: support interlaced uncompressed data for compressed files 2022-09-23 10:55:56 +08:00
dir.c erofs: update ctx->pos for every emitted dirent 2022-07-31 22:26:29 +08:00
erofs_fs.h erofs: introduce partial-referenced pclusters 2022-09-26 23:55:43 +08:00
fscache.c erofs: relinquish volume with mutex held 2023-03-10 09:32:46 +01:00
inode.c erofs: fix fsdax unavailability for chunk-based regular files 2023-07-23 13:49:26 +02:00
internal.h erofs: simplify iloc() 2023-07-19 16:20:59 +02:00
Kconfig erofs: register fscache volume 2022-05-18 00:11:19 +08:00
Makefile erofs: register fscache volume 2022-05-18 00:11:19 +08:00
namei.c erofs: clean up erofs_iget() 2022-09-27 17:27:45 +08:00
pcpubuf.c erofs: get rid of ->lru usage 2021-10-25 08:22:59 +08:00
super.c erofs: initialize packed inode after root inode is assigned 2023-05-11 23:03:07 +09:00
sysfs.c erofs: fix use-after-free of fsid and domain_id string 2022-11-10 09:53:20 +08:00
utils.c mm: shrinkers: provide shrinkers with names 2022-07-03 18:08:40 -07:00
xattr.c erofs: simplify iloc() 2023-07-19 16:20:59 +02:00
xattr.h erofs: clean up unnecessary code and comments 2022-09-27 17:27:25 +08:00
zdata.c erofs: ensure that the post-EOF tails are all zeroed 2023-09-06 21:26:59 +01:00
zmap.c erofs: fix compact 4B support for 16k block size 2023-07-19 16:20:59 +02:00