diff options
| author | Gao Xiang <xiang@kernel.org> | 2026-07-23 13:03:13 +0800 |
|---|---|---|
| committer | Gao Xiang <xiang@kernel.org> | 2026-07-24 07:13:13 +0800 |
| commit | ef503ce476a84ee1ef18626dcd9ab9b3baea92a8 (patch) | |
| tree | 7c21a94aaabee06796af2b3781a295f6221a42e8 /lib/string_helpers.c | |
| parent | 97ab5aa5177cfa8759bd3861d71e047ea084a829 (diff) | |
| download | linux-next-ef503ce476a84ee1ef18626dcd9ab9b3baea92a8.tar.gz linux-next-ef503ce476a84ee1ef18626dcd9ab9b3baea92a8.zip | |
erofs: ensure valid f_path for page cache sharing
Previously, backing files for page cache sharing were set up with
f_path left as NULL (only f_inode was valid). It worked, but a recent
mincore fix relies on f_path.mnt and crashes (found by "erofs/028" on
7.2-rc4):
BUG: kernel NULL pointer dereference, address: 0000000000000018
#PF: supervisor read access in kernel mode
#PF: error_code(0x0000) - not-present page
PGD 0 P4D 0
Oops: Oops: 0000 [#1] SMP PTI
CPU: 3 UID: 0 PID: 675528 Comm: fincore Not tainted 7.2.0-rc4-00002-g[]-dirty #1 PREEMPT(lazy)
Hardware name: Red Hat KVM, BIOS 1.16.0-4.al8 04/01/2014
RIP: 0010:__do_sys_mincore+0xc0/0x2c0
...
Specify valid paths using valid disconnected dentries together with
erofs_ishare_mnt instead of leaving f_path empty, so they are more
like real backing files in a pseudo filesystem and standard
backing_file_open() can be used directly.
Fixes: e187bc02f8fa ("mm: do file ownership checks with the proper mount idmap")
Acked-by: Hongbo Li <hongbohbli@tencent.com>
Signed-off-by: Gao Xiang <xiang@kernel.org>
Diffstat (limited to 'lib/string_helpers.c')
0 files changed, 0 insertions, 0 deletions
