Commit 42023dd0a294 for kernel

commit 42023dd0a294d8b5c05127dcf95987b70c2fb271
Merge: 4e1b4fdf6113 8534eb11ac05
Author: Linus Torvalds <torvalds@linux-foundation.org>
Date:   Sun Oct 25 15:54:05 2026 -1000

    Merge tag 'exfat-for-7.4-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/linkinjeon/exfat

    Pull exfat updates from Namjae Jeon:

     - Use the recalculated append position when advancing valid_size, dirty
       all pages involved in valid-data extension, and zero invalid tails on
       partial overwrites. Write-protect the folio spanning the old EOF and
       zero its post-EOF range when extending a file, ensuring subsequent
       mmap writes advance valid_size.

     - Make valid_size and zeroed_size atomic to prevent torn reads and lost
       updates. Hold the invalidate lock during truncation, and drain
       in-flight direct I/O before buffered writes, buffered fallback, and
       page-cache operations that extend valid_size.

     - Fall back to single-cluster allocation when a buffered write cannot
       allocate its entire range, allowing writes to consume the remaining
       free space and return a short count.

     - Free clusters allocated beyond EOF after failed or short writes to
       prevent leaked space and spurious ENOSPC errors on later writes or
       file extensions.

     - Clean block-device buffer aliases when allocating clusters so delayed
       directory metadata writeback cannot overwrite file data after cluster
       reuse.

     - Update used_clusters as each cluster is allocated so
       partial-allocation cleanup keeps free-space accounting consistent.
       Acquire bitmap_lock before checking available space to serialize the
       check with allocation.

     - Use swap-specific iomap operations to report allocated extents beyond
       valid_size as unwritten during swap activation, retaining
       byte-accurate SEEK_HOLE and SEEK_DATA reporting in regular I/O.

     - Check allocation flags, vendor GUIDs, cluster numbers, data lengths,
       and contiguous extents in Vendor Allocation directory entries. Read
       complete entry sets during lookup so malformed trailing entries
       cannot bypass validation.

     - Follow directory FAT chains to their actual end when the recorded
       size is too small, supporting devices that leave directory sizes
       stale. Handle reads after seeking past the directory end.

     - Clear the volume dirty flag during remount only when switching to
       read-only without SB_FORCE. Update percent_in_use when changing
       volume flags, reporting unknown usage while the volume is dirty or
       persistent flags prevent marking it clean.

     - Replace runtime division by powers of two with bit operations.

     - Document supported mount options, and exfatprogs, and add the
       documentation path to MAINTAINERS.

    * tag 'exfat-for-7.4-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/linkinjeon/exfat:
      exfat: fix reading a directory whose FAT chain is longer than its size
      exfat: free clusters beyond EOF when a write fails or is short
      exfat: clean stale bdev buffers of newly allocated clusters
      exfat: mark straddling folio RO and zero the post-EOF range
      exfat: fix a large buffered write failing when the volume is nearly full
      exfat: zero invalid tail on partial overwrites
      exfat: drain in-flight DIO before buffered writes
      exfat: make valid_size and zeroed_size atomic
      exfat: dirty all new pages when extending valid_size
      exfat: hold the invalidate lock while truncating
      exfat: advance valid_size to EOF for append writes
      MAINTAINERS: add exFAT documentation
      exfat: remove runtime integer division
      exfat: update percent_in_use field when updating volume flags
      exfat: clear the volume dirty flag only when remounting read-only
      exfat: doc: add documentation
      exfat: validate vendor allocation directory entries
      exfat: take bitmap_lock at the start of exfat_alloc_cluster()
      exfat: fix used_clusters accounting during cluster allocation
      exfat: map allocated extents for swap activation