[GIT PULL] ntfs fixes for 7.3-rc2

From: Namjae Jeon

Date: Thu Sep 03 2026 - 03:21:29 EST


Hi Linus,

This is ntfs fixes pull request for v7.3-rc2. I add the description of
this pull request below. Please pull the following ntfs fixes.

Thanks!

The following changes since commit 45c13f3f9e3bb15fd89ff2864c6f627a3b4b4229:

Merge tag 'hwlock-v7.3' of
git://git.kernel.org/pub/scm/linux/kernel/git/remoteproc/linux
(2026-08-25 14:21:47 -0700)

are available in the Git repository at:

git://git.kernel.org/pub/scm/linux/kernel/git/linkinjeon/ntfs.git
tags/ntfs-for-7.3-rc2

for you to fetch changes up to 0fecc393f2060e6bc25138df32cb923ec7071c6b:

ntfs: take invalidate_lock in ntfs_filemap_page_mkwrite()
(2026-08-31 19:47:53 +0900)

----------------------------------------------------------------
- Serialize truncate, fallocate, and mmap fault paths with
invalidate_lock, avoiding mmap failures during concurrent size changes
and exposure of uninitialized data during allocation.

- Correct fallocate signal and zeroing error handling.

- Fix FITRIM range alignment to prevent discard requests from extending
into allocated clusters.

- Fix free-cluster accounting when cluster-freeing rollback or bitmap
clearing fails.

- Keep volumes marked dirty when ntfs errors have been recorded.

- Compute bi_sector in 512-byte units, preventing silent corruption on
4Kn devices.

- Validate sectors_per_cluster values and prevent undefined shifts when
parsing MFT and index record sizes.

- Bound $AttrDef traversal to the loaded table size.

- Fix MFT record resizing, memmove overlap, and kmap_local cleanup issues.

- Improve error propagation across attribute, EA, and reparse operations,
including returning -ERANGE for undersized xattr buffers.

- Avoid modifying the HasEA flag when setxattr fails and return
DT_UNKNOWN when directory inode lookup fails.

- Reduce contention in WOF decompression by performing block reads outside
the decompression lock.

----------------------------------------------------------------
Baolin Liu (9):
ntfs: return DT_UNKNOWN on inode lookup failure in readdir
ntfs: propagate reparse index insertion failure
ntfs: return -ERANGE for undersized xattr buffer
ntfs: preserve error code in ntfs_resident_attr_record_add()
ntfs: return real error from ntfs_non_resident_attr_record_add()
ntfs: fix kmap_local leak in write_mft_record_nolock() error paths
ntfs: only count successfully cleared runs when freeing clusters
ntfs: skip free cluster decrement when rollback fails
ntfs: leave HasEA flag untouched on setxattr failure

Dennis Tighe (4):
ntfs: do not mark the volume clean in sync_fs when errors were recorded
ntfs: bound $AttrDef table walk to the loaded table size
ntfs: reject invalid sectors_per_cluster in the boot sector
ntfs: compute bi_sector in 512-byte units

Hongling Zeng (7):
ntfs: fix incorrect MFT record pointer passed to ntfs_attr_record_resize
ntfs: fix undefined behavior in mft/index record size calculation
ntfs: fix memmove overlap in ntfs_new_attr_flags
ntfs: fix race between fallocate and mmap reads
ntfs: handle signal interruption in fallocate
ntfs: take invalidate_lock in ntfs_setattr_size()
ntfs: take invalidate_lock in ntfs_filemap_page_mkwrite()

Jacopo Labardi (1):
ntfs: fix FITRIM range alignment

Wentao Guan (1):
ntfs: treat any nonzero dio zero-range return as an error

Zhan Xusheng (1):
ntfs: read WOF chunks outside the decompression lock

fs/ntfs/attrib.c | 18 +++++---
fs/ntfs/bdev-io.c | 2 +-
fs/ntfs/bitmap.c | 8 ++--
fs/ntfs/compress.c | 2 +-
fs/ntfs/ea.c | 49 +++++++++++++++------
fs/ntfs/file.c | 50 +++++++++++++--------
fs/ntfs/inode.c | 10 +----
fs/ntfs/lcnalloc.c | 9 ++--
fs/ntfs/mft.c | 16 ++++---
fs/ntfs/ntfs.h | 10 ++---
fs/ntfs/reparse.c | 7 +--
fs/ntfs/super.c | 15 ++++---
fs/ntfs/wof.c | 127 +++++++++++++++++++++++++++++++++--------------------
13 files changed, 196 insertions(+), 127 deletions(-)