linux/fs/exfat
Linus Torvalds 728785f8fb This contains a set of nine exfat fixes covering shared writable mappings,
entry error handling, allocation cleanup, FITRIM bounds, and locking:
 
  - Fix valid_size extension over shared writable mappings by lazily
    zeroing page-cache gaps and ensuring racing stores cannot be
    overwritten or extend beyond valid_size.
  - Clean up partially written directory entries on add-entry failure and
    safely free new directory clusters.
  - Free a newly allocated directory cluster when zeroing it fails.
  - Write the destination entry before removing the source entry during
    rename, preserving the source if the destination write fails.
  - Keep FITRIM within the requested range, even when the free-space search
    wraps around the allocation bitmap.
  - Fix truncated FS_IOC_GETFSLABEL results by passing the destination
    buffer size in bytes to the UTF-16-to-NLS conversion.
  - Fix overflow in the cluster-to-dentry calculation, which could cause
    readdir to stop early on large volumes.
  - Replace the per-inode truncate_lock with inode_lock, using shared
    locking in bmap to serialize against concurrent truncation.
  - Update the exfat mailing list address in MAINTAINERS.
 -----BEGIN PGP SIGNATURE-----
 
 iQJKBAABCgA0FiEE6NzKS6Uv/XAAGHgyZwv7A1FEIQgFAmqJqrAWHGxpbmtpbmpl
 b25Aa2VybmVsLm9yZwAKCRBnC/sDUUQhCLIXEACnqHgNmrvIM6QtesU6iSVd6eGT
 +7q+6ahkVv6dFks9KMc2hbzIs9VWmDpD3omU2OuqbJYiL3vuhv4+CwOnie6/5umc
 3JCAG5jVOq5ee+7Tz6xZoxz2JxoxXm6LLmHXU0WALN4k8IsE7veGXAGkMgfnAQ44
 lFDTByhvyf7vmXGHsz2FewOjdT6pdl4SUVAZQkvcZB9ujCqCWzx53s1+XZ2RCsT3
 trepvTXQkxk2UyAKGs30JUiHDYwv01sYJCV84YKFBzTBCQ9AIIxKLCWlhYfERmLi
 iL2nTBoNQPdDKiQK/R+axjkUABIQD3L4EhhqdLqcDBOFGsRlxUfd8pjyp+O5/yRw
 Ev3ydGBDOULyU6Fmtx7mpzWm3EHklssMoGGuI9b81WcQc0PLp613egglgr1gKNZs
 PaB74ea3ehSfHUIn2hF6Uli+OfZhXuHiOE/YKp6QTuer3rwUl0nJgIPDpkfWDuBH
 hBGnTyiafMS0TVnd2yS0z8R/JipVpUniAPKLL5kRO3uIWcUwrRGjU8vfjsY5BSvU
 W8BrYBu69zRQ603m/ARJ2gFU3jPmD7a/Su/m2GKaPjB/90RDbjRjcJ+r78pDfa1b
 FgmL0cgyZg6uYFB0K/PCbSDsXA+x7xpjmOwZGgZNzrsFDQ+C9p5fizuOVG6N9MOg
 zxOmKrpSSLYx0ahHgQ==
 =kunx
 -----END PGP SIGNATURE-----

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

Pull exfat updates from Namjae Jeon:
 "A set of exfat fixes covering shared writable mappings, entry error
  handling, allocation cleanup, FITRIM bounds, and locking:

   - Fix valid_size extension over shared writable mappings by lazily
     zeroing page-cache gaps and ensuring racing stores cannot be
     overwritten or extend beyond valid_size

   - Clean up partially written directory entries on add-entry failure
     and safely free new directory clusters

   - Free a newly allocated directory cluster when zeroing it fails

   - Write the destination entry before removing the source entry during
     rename, preserving the source if the destination write fails

   - Keep FITRIM within the requested range, even when the free-space
     search wraps around the allocation bitmap

   - Fix truncated FS_IOC_GETFSLABEL results by passing the destination
     buffer size in bytes to the UTF-16-to-NLS conversion

   - Fix overflow in the cluster-to-dentry calculation, which could
     cause readdir to stop early on large volumes

   - Replace the per-inode truncate_lock with inode_lock, using shared
     locking in bmap to serialize against concurrent truncation

   - Update the exfat mailing list address in MAINTAINERS"

* tag 'exfat-for-7.3-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/linkinjeon/exfat:
  exfat: replace truncate_lock with inode_lock
  exfat: keep FITRIM within the requested range
  exfat: fix truncated volume labels returned by FS_IOC_GETFSLABEL
  exfat: fix overflow in cluster-to-dentry conversion
  exfat: clean up new entry on add entry failure
  exfat: free new directory cluster if zeroing fails
  exfat: write moved entry before removing source
  MAINTAINERS: update mailing list address for exfat
  exfat: fix valid_size extension over a shared writable mapping
2026-08-22 08:57:28 -07:00
..
balloc.c exfat: keep FITRIM within the requested range 2026-08-14 23:43:02 +09:00
cache.c exfat: support multi-cluster for exfat_get_cluster 2026-02-12 21:21:51 +09:00
dir.c exfat: fix overflow in cluster-to-dentry conversion 2026-08-06 22:06:09 +09:00
exfat_fs.h exfat: replace truncate_lock with inode_lock 2026-08-17 16:16:55 +09:00
exfat_raw.h exfat: fix s_maxbytes 2026-03-31 23:01:07 +09:00
fatent.c exfat: add support for multi-cluster allocation 2026-06-15 19:55:42 +09:00
file.c exfat: replace truncate_lock with inode_lock 2026-08-17 16:16:55 +09:00
inode.c exfat: replace truncate_lock with inode_lock 2026-08-17 16:16:55 +09:00
iomap.c This contains a set of nine exfat fixes covering shared writable mappings, 2026-08-22 08:57:28 -07:00
iomap.h exfat: add swap_activate support 2026-06-15 20:01:00 +09:00
Kconfig exfat: add iomap direct I/O support 2026-06-15 20:00:40 +09:00
Makefile exfat: add iomap buffered I/O support 2026-06-15 20:00:23 +09:00
misc.c exfat: fix error handling for FAT table operations 2026-03-05 21:09:35 +09:00
namei.c This contains a set of nine exfat fixes covering shared writable mappings, 2026-08-22 08:57:28 -07:00
nls.c exfat: fix handling of damaged volume in exfat_create_upcase_table() 2026-06-15 19:55:17 +09:00
super.c exfat: replace truncate_lock with inode_lock 2026-08-17 16:16:55 +09:00