mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
* [GIT PULL] exfat update for 7.4-rc1
@ 2026-10-24  4:15 Namjae Jeon
  2026-10-26  2:07 ` pr-tracker-bot
  0 siblings, 1 reply; 2+ messages in thread
From: Namjae Jeon @ 2026-10-24  4:15 UTC (permalink / raw)
  To: Linus Torvalds
  Cc: Sungjong Seo, Yuezhang.Mo, Linux Kernel Mailing List, exfat

Hi Linus,

This is exfat update pull request for v7.4-rc1. I add a description of
this pull request below. Please pull exfat with following ones.

Thanks!

The following changes since commit 4a8bdffce502d70405391a7ac38bac6dcef94749:

  Merge tag 'x86_tdx_for_7.4-rc1' of
git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip (2026-10-20
12:17:47 -1000)

are available in the Git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/linkinjeon/exfat.git
tags/exfat-for-7.4-rc1

for you to fetch changes up to 8534eb11ac056dc2ca08007cf76d3ae7cbe42684:

  exfat: fix reading a directory whose FAT chain is longer than its
size (2026-10-21 08:28:32 +0900)

----------------------------------------------------------------
- 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.

----------------------------------------------------------------
Chi Zhiling (7):
      exfat: fix used_clusters accounting during cluster allocation
      exfat: take bitmap_lock at the start of exfat_alloc_cluster()
      exfat: clear the volume dirty flag only when remounting read-only
      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

David Timber (2):
      exfat: update percent_in_use field when updating volume flags
      exfat: remove runtime integer division

Hengyu Liang (3):
      exfat: fix a large buffered write failing when the volume is nearly full
      exfat: free clusters beyond EOF when a write fails or is short
      exfat: fix reading a directory whose FAT chain is longer than its size

Jiale Yao (1):
      exfat: drain in-flight DIO before buffered writes

Namjae Jeon (4):
      exfat: map allocated extents for swap activation
      exfat: doc: add documentation
      MAINTAINERS: add exFAT documentation
      exfat: zero invalid tail on partial overwrites

Nicolas Falesy (1):
      exfat: clean stale bdev buffers of newly allocated clusters

Yang Wen (1):
      exfat: validate vendor allocation directory entries

Yuezhang Mo (1):
      exfat: mark straddling folio RO and zero the post-EOF range

 Documentation/filesystems/exfat.rst | 117 ++++++++++++++++
 Documentation/filesystems/index.rst |   1 +
 MAINTAINERS                         |   1 +
 fs/exfat/dir.c                      |  52 +++++++-
 fs/exfat/exfat_fs.h                 |  89 ++++++++++--
 fs/exfat/fatent.c                   |  46 +++++--
 fs/exfat/file.c                     | 260 ++++++++++++++++++++----------------
 fs/exfat/inode.c                    |  16 ++-
 fs/exfat/iomap.c                    |  81 +++++++++--
 fs/exfat/namei.c                    |  11 +-
 fs/exfat/super.c                    |  30 ++++-
 11 files changed, 535 insertions(+), 169 deletions(-)
 create mode 100644 Documentation/filesystems/exfat.rst

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2026-10-26  2:08 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-10-24  4:15 [GIT PULL] exfat update for 7.4-rc1 Namjae Jeon
2026-10-26  2:07 ` pr-tracker-bot

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®