[PATCH v2 0/7] exfat: fix valid_size handling and locking
From: Chi Zhiling
Date: Fri Oct 02 2026 - 23:32:08 EST
From: Chi Zhiling <chizhiling@xxxxxxxxxx>
valid_size marks the on-disk up-to-date (VDL) region of an exFAT file.
Data below it is valid; data at or above it is a hole that reads
zero-fill, so valid_size must be advanced in the window where the data
actually becomes valid.
Patches 1-3 fix the standalone bugs (append offset, truncate vs mmap
locking, dirtying of newly zeroed pages), patch 4 makes valid_size and
zeroed_size monotonic atomic counters as a prerequisite, and patches 5-7
advance valid_size under the folio lock and drop i_rwsem from
->page_mkwrite.
Link: https://lore.kernel.org/exfat/10029d6f-13cc-4d17-a2f9-b093a8339dde/T/#t
V1: https://lore.kernel.org/exfat/59056131-e3bd-4003-8c30-0a356cf0bd82@xxxxxxx/
Chi Zhiling (7):
exfat: advance valid_size to EOF for append writes
exfat: hold the invalidate lock while truncating
exfat: dirty all new pages when extending valid_size
exfat: make valid_size and zeroed_size atomic
exfat: publish valid_size under the folio lock for buffered writes
exfat: advance valid_size while zeroing new ranges
exfat: drop i_rwsem from exfat_page_mkwrite
fs/exfat/exfat_fs.h | 60 +++++++++++++++-
fs/exfat/file.c | 166 +++++++++++++++-----------------------------
fs/exfat/inode.c | 16 +++--
fs/exfat/iomap.c | 36 +++++++---
fs/exfat/iomap.h | 1 +
fs/exfat/namei.c | 4 +-
6 files changed, 151 insertions(+), 132 deletions(-)
--
2.53.0