diff options
| author | Yuezhang Mo <Yuezhang.Mo@sony.com> | 2026-10-10 18:12:01 +0800 |
|---|---|---|
| committer | Namjae Jeon <linkinjeon@kernel.org> | 2026-10-21 08:28:32 +0900 |
| commit | 1043264c3cfa43b0668f7472a749868c1e21749b (patch) | |
| tree | 6bf27b7bbcad1f6d81cfa927306f71bb4d19f856 /scripts/Makefile.thinlto | |
| parent | 73cababf93cb371e2e9d06da5261ca6ddd2404b6 (diff) | |
| download | linux-1043264c3cfa43b0668f7472a749868c1e21749b.tar.gz linux-1043264c3cfa43b0668f7472a749868c1e21749b.zip | |
exfat: mark straddling folio RO and zero the post-EOF range
When extending a file across a non-page-aligned EOF, the folio
containing the old EOF must be marked RO so that subsequent mmap
writes trigger ->page_mkwrite() and update valid_size.
The straddling folio remains mapped to the same filesystem block
after the file is extended. As a result, the existing writable PTE
may remain in place, allowing mmap writes to bypass ->page_mkwrite()
and leave valid_size unchanged.
Furthermore, writes to the post-EOF range may occur between
truncate_pagecache() and locking the folio. So the post-EOF range
should be zeroed after marking the straddling folio RO, and using
truncate_pagecache() to zero out the post-EOF range is redundant.
Introduce exfat_pagecache_isize_extended() to mark the straddling
folio RO and zero the post-EOF range after clearing writable mapping.
This ensures that data written beyond the old EOF before the extension
is not exposed as valid file data, and that subsequent mmap writes
trigger ->page_mkwrite() to update valid_size.
Fixes: 82a81a7352bc ("exfat: add iomap buffered I/O support")
Cc: stable@vger.kernel.org
Signed-off-by: Yuezhang Mo <Yuezhang.Mo@sony.com>
Signed-off-by: Namjae Jeon <linkinjeon@kernel.org>
Diffstat (limited to 'scripts/Makefile.thinlto')
0 files changed, 0 insertions, 0 deletions
