[GIT PULL] ntfs3: changes for 7.2

Konstantin Komarov <[email protected]> Wed, 24 Jun 2026 09:37:25 +0300
Newsgroups dev.linux.lists.ntfs3,org.kernel.vger.linux-fsdevel,org.kernel.vger.linux-kernel
Message-ID <[email protected]>
Hello, please pull this branch containing ntfs3 code for 7.2.
 
Regards,
Konstantin
 
----------------------------------------------------------------
The following changes since commit 254f49634ee16a731174d2ae34bc50bd5f45e731:
 
  Linux 7.1-rc1 (2026-04-26 14:19:00 -0700)
 
are available in the Git repository at:
 
https://github.com/Paragon-Software-Group/linux-ntfs3.git tags/ntfs3_for_7.2
 
for you to fetch changes up to 5b08dccecf825cbf905f348bc6ccb497507e28e2:
 
  ntfs3: reject direct userspace writes to reserved $LX* xattrs (2026-06-10 12:37:10 +0200)
 
----------------------------------------------------------------
Changes for 7.2-rc1
 
Added:
    depth limit to indx_find_buffer() to prevent stack overflow
    validate split-point offset in indx_insert_into_buffer()
    bounds check to run_get_highest_vcn()
    fileattr_get() and fileattr_set() support
    zero stale pagecache beyond valid data length
    handle delayed allocation overlap in run lookup
    validate lcns_follow in log_replay() conversion
    cap RESTART_TABLE free-chain walker at rt->used
    resize log->one_page_buf when adopting on-disk page size
    reject direct userspace writes to reserved $LX* xattrs
 
Fixed:
    out-of-bounds read in decompress_lznt()
    avoid -Wmaybe-uninitialized warnings
    hold ni_lock across readdir metadata walk
    preserve non-DOS attribute bits in system.dos_attrib
    validate index entry key bounds
    syncing wrong inode on DIRSYNC cross-directory rename
    validate Dirty Page Table capacity in log_replay() copy_lcns
    wrong LCN in run_remove_range() when splitting a run
    allocate iomap inline_data using alloc_page
    mount failure on 64K page-size kernels
    out-of-bounds read in ntfs_dir_emit() and hdr_find_e()
    bound attr_off in UpdateResidentValue against data_off
    bound DeleteIndexEntryAllocation memmove length
    bound copy_lcns dp->page_lcns[] index in analysis pass
    bound NTFS_DE view.data_off in UpdateRecordData{Root,Allocation}
    prevent potential lcn remains uninitialized
 
Changed:
    bound to_move in indx_insert_into_root() before hdr_insert_head()
    call _ntfs_bad_inode() when failing to rename
    fold resident writeback into writepages loop
    force waiting for direct I/O completion
    fold file size handling into ntfs_set_size()
    reject SEEK_DATA and SEEK_HOLE past EOF early
    format code, add descriptive comments and remove non-useful
 
----------------------------------------------------------------
Alessandro Schino (1):
      ntfs3: fix out-of-bounds read in ntfs_dir_emit() and hdr_find_e()
 
Arnd Bergmann (2):
      ntfs3: avoid -Wmaybe-uninitialized warning
      ntfs3: avoid another -Wmaybe-uninitialized warning
 
Edward Adam Davis (1):
      fs/ntfs3: prevent potential lcn remains uninitialized
 
Helen Koike (1):
      fs/ntfs3: call _ntfs_bad_inode() when failing to rename
 
Jamie Nguyen (2):
      fs/ntfs3: fix mount failure on 64K page-size kernels
      fs/ntfs3: resize log->one_page_buf when adopting on-disk page size
 
Konstantin Komarov (13):
      fs/ntfs3: add bounds check to run_get_highest_vcn()
      fs/ntfs3: add fileattr support
      fs/ntfs3: zero stale pagecache beyond valid data length
      fs/ntfs3: handle delayed allocation overlap in run lookup
      fs/ntfs3: fold resident writeback into writepages loop
      fs/ntfs3: force waiting for direct I/O completion
      fs/ntfs3: fold file size handling into ntfs_set_size()
      fs/ntfs3: reject SEEK_DATA and SEEK_HOLE past EOF early
      fs/ntfs3: format code, deal with comments
      fs/ntfs3: bound attr_off in UpdateResidentValue against data_off
      fs/ntfs3: bound DeleteIndexEntryAllocation memmove length
      fs/ntfs3: validate lcns_follow in log_replay conversion
      ntfs3: reject direct userspace writes to reserved $LX* xattrs
 
Michael Bommarito (6):
      fs/ntfs3: add depth limit to indx_find_buffer to prevent stack overflow
      ntfs3: bound to_move in indx_insert_into_root before hdr_insert_head
      ntfs3: validate split-point offset in indx_insert_into_buffer
      fs/ntfs3: bound copy_lcns dp->page_lcns[] index in analysis pass
      fs/ntfs3: bound NTFS_DE view.data_off in UpdateRecordData{Root,Allocation}
      ntfs3: cap RESTART_TABLE free-chain walker at rt->used
 
Mihai Brodschi (1):
      ntfs3: Allocate iomap inline_data using alloc_page
 
Tristan Madani (1):
      ntfs3: fix out-of-bounds read in decompress_lznt
 
Yunpeng Tian (1):
      fs/ntfs3: validate Dirty Page Table capacity in log_replay copy_lcns
 
Zhan Xusheng (2):
      fs/ntfs3: fix syncing wrong inode on DIRSYNC cross-directory rename
      fs/ntfs3: fix wrong LCN in run_remove_range() when splitting a run
 
ZhengYuan Huang (3):
      fs/ntfs3: hold ni_lock across readdir metadata walk
      fs/ntfs3: preserve non-DOS attribute bits in system.dos_attrib
      fs/ntfs3: validate index entry key bounds
 
fs/ntfs3/attrib.c  |  29 +++--
fs/ntfs3/dir.c     |  26 +++--
fs/ntfs3/file.c    | 304 +++++++++++++++++++++++++++--------------------------
fs/ntfs3/frecord.c |  38 ++++---
fs/ntfs3/fslog.c   | 157 +++++++++++++++++++++++----
fs/ntfs3/fsntfs.c  |   1 -
fs/ntfs3/index.c   | 119 +++++++++++++++++----
fs/ntfs3/inode.c   |  78 ++++++--------
fs/ntfs3/lznt.c    |   2 +-
fs/ntfs3/namei.c   |   6 +-
fs/ntfs3/ntfs_fs.h |  12 ++-
fs/ntfs3/run.c     |  75 ++++++++++++-
fs/ntfs3/xattr.c   |  16 ++-
13 files changed, 589 insertions(+), 274 deletions(-)