linux/fs/ntfs
Linus Torvalds bfda5a01aa - Make MFT extension work on existing Windows-created volumes by
dynamically reserving MFT tail records, accounting for records added
    during allocation, and avoiding false -ENOSPC failures.
 
  - Repack non-resident $MFT/$ATTRIBUTE_LIST when its mapping pairs no longer
    fit in the base MFT record, while propagating allocation and writeback
    errors.
 
  - Serialize runlist updates with the runlist lock and restore both the
    in-memory runlist and on-disk mapping pairs when allocation rollback is
    required.
 
  - Propagate folio errors and harden inode failure handling by treating
    interrupted reads as transient failures and discarding and unhashing
    inodes whose initialization fails.
 
  - Fix the $MFTMirr write offset when mirror records span multiple folios,
    preventing mirror records from overwriting the first record with large
    MFT record sizes.
 -----BEGIN PGP SIGNATURE-----
 
 iQJKBAABCgA0FiEE6NzKS6Uv/XAAGHgyZwv7A1FEIQgFAmqtRIEWHGxpbmtpbmpl
 b25Aa2VybmVsLm9yZwAKCRBnC/sDUUQhCBK8EAChFdTxig3sYog3dL27SX+1yNC4
 S1QtSQMvPJzcvLG2/mESC57snx1u6AXZ6enaQ/m8zQQvkWHFdwD+odgjOQ3474Yc
 MS7xQn5pCsAo3LmSWiDsQfHmvxgDMYlIRU1vmqr7fG2pj+W6BR2LB1PD3RI9exI7
 0WWAXBPZH5w5C9GE1Zo7TF9Xwby5Or31RS8+R57PXA/PJ1ivpWnlkpfLi4M/YkZK
 GIpunZafSpcKbEsuWcjhdz11bR4G9Qlwuuq0MDguLC/qsqsobHCeSbdx+4IsEAq5
 02yBl5hYm2E4u2KBedpe7oRwFvlPN0uakEGYS8SA1ad9XamjGIw6T0tkzkDL48Pq
 dhVAeX2oa8O9u+VK+qF/HIUylh/UbmHQJW8iSiZWO8WdULGBG8oCHI1hcSnMguwJ
 njyK75UXz4fMsKW6ZpRu0sRGqtKKcbg8IrCvLslPIOS2A9OAwSzytDKI+x1Kbgu0
 SVPYjf6XeOz83tvE+2OhfTT1hWkeKezMiUe4E/y9rgEDxv5vE4C5pvpDfRlj3oyn
 2JTXXjjUQGSQw/9cKbLsbElDH/FLEojLAsIFgM+2FbcG+x7PUUgSGdC4R4qZ9MUF
 cuMzfhi8vKyCYmJc8nNE4J6b6UkBNOFJMYBcArtByFW3LqfIzmqwW81Xx0Hz4cxi
 dmOhD6gXXYoi9m3lBQ==
 =rT1L
 -----END PGP SIGNATURE-----

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

Pull ntfs fixes from Namjae Jeon:

 - Make MFT extension work on existing Windows-created volumes by
   dynamically reserving MFT tail records, accounting for records added
   during allocation, and avoiding false -ENOSPC failures

 - Repack non-resident $MFT/$ATTRIBUTE_LIST when its mapping pairs no
   longer fit in the base MFT record, while propagating allocation and
   writeback errors

 - Serialize runlist updates with the runlist lock and restore both the
   in-memory runlist and on-disk mapping pairs when allocation rollback
   is required

 - Propagate folio errors and harden inode failure handling by treating
   interrupted reads as transient failures and discarding and unhashing
   inodes whose initialization fails

 - Fix the $MFTMirr write offset when mirror records span multiple
   folios, preventing mirror records from overwriting the first record
   with large MFT record sizes

* tag 'ntfs-for-7.3-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/linkinjeon/ntfs:
  ntfs: fix $MFTMirr write offset when it spans multiple folios
  ntfs: unhash failed inode reads
  ntfs: discard inodes that fail initialization
  ntfs: ignore interrupted inode reads as corruption
  ntfs: propagate folio errors
  ntfs: protect runlist updates with the runlist lock
  ntfs: account for MFT records added during allocation
  ntfs: repack $MFT/$ATTRIBUTE LIST
  ntfs: use dynamic MFT tail reservation
2026-09-18 11:02:08 -07:00
..
lib ntfs: implement codec ops for LZX and XPRESS 2026-08-21 19:06:45 +09:00
aops.c ntfs: add non-resident WOF decompression 2026-08-21 19:08:57 +09:00
attrib.c ntfs: protect runlist updates with the runlist lock 2026-09-13 11:41:42 +09:00
attrib.h ntfs: protect runlist updates with the runlist lock 2026-09-13 11:41:42 +09:00
attrlist.c ntfs: protect runlist updates with the runlist lock 2026-09-13 11:41:42 +09:00
attrlist.h ntfs: protect runlist updates with the runlist lock 2026-09-13 11:41:42 +09:00
bdev-io.c ntfs: compute bi_sector in 512-byte units 2026-08-27 21:47:38 +09:00
bitmap.c treewide: refresh kmalloc_obj() conversions 2026-09-04 21:37:00 -07:00
bitmap.h ntfs: update in-memory, on-disk structures and headers 2026-02-19 21:48:06 +09:00
collate.c ntfs: update misc operations 2026-02-19 21:50:56 +09:00
collate.h ntfs: update in-memory, on-disk structures and headers 2026-02-19 21:48:06 +09:00
compress.c - Make MFT extension work on existing Windows-created volumes by 2026-09-18 11:02:08 -07:00
debug.c ntfs: update misc operations 2026-02-19 21:50:56 +09:00
debug.h ntfs: update in-memory, on-disk structures and headers 2026-02-19 21:48:06 +09:00
dir.c treewide: refresh kmalloc_obj() conversions 2026-09-04 21:37:00 -07:00
dir.h ntfs: update in-memory, on-disk structures and headers 2026-02-19 21:48:06 +09:00
ea.c treewide: refresh kmalloc_obj() conversions 2026-09-04 21:37:00 -07:00
ea.h ntfs: respect per-file chmod mode over mount masks 2026-08-19 18:16:45 +09:00
file.c ntfs: protect runlist updates with the runlist lock 2026-09-13 11:41:42 +09:00
index.c treewide: refresh kmalloc_obj() conversions 2026-09-04 21:37:00 -07:00
index.h ntfs: validate index entries on reading 2026-06-06 00:19:56 +09:00
inode.c ntfs: unhash failed inode reads 2026-09-13 11:41:54 +09:00
inode.h ntfs: parse REPARSE_TAG_WOF 2026-08-21 19:06:38 +09:00
iomap.c ntfs: serialize resident iomap reads with mrec_lock 2026-08-19 18:16:47 +09:00
iomap.h ntfs: update in-memory, on-disk structures and headers 2026-02-19 21:48:06 +09:00
Kconfig ntfs: add WOF compression config option 2026-08-21 19:06:34 +09:00
layout.h ntfs: support following Windows native symlink with absolute paths 2026-06-15 19:39:37 +09:00
lcnalloc.c ntfs: skip free cluster decrement when rollback fails 2026-08-26 20:16:02 +09:00
lcnalloc.h ntfs: update in-memory, on-disk structures and headers 2026-02-19 21:48:06 +09:00
logfile.c treewide: refresh kmalloc_obj() conversions 2026-09-04 21:37:00 -07:00
logfile.h ntfs: update in-memory, on-disk structures and headers 2026-02-19 21:48:06 +09:00
Makefile ntfs: add non-resident WOF decompression 2026-08-21 19:08:57 +09:00
malloc.h Revert "fs: Remove NTFS classic" 2026-02-19 21:48:05 +09:00
mft.c - Make MFT extension work on existing Windows-created volumes by 2026-09-18 11:02:08 -07:00
mft.h ntfs: use dynamic MFT tail reservation 2026-09-13 11:41:34 +09:00
mst.c ntfs: update mft operations 2026-02-19 21:48:07 +09:00
namei.c ntfs: use dynamic MFT tail reservation 2026-09-13 11:41:34 +09:00
ntfs_codec.h ntfs: implement codec ops for LZX and XPRESS 2026-08-21 19:06:45 +09:00
ntfs.h ntfs: compute bi_sector in 512-byte units 2026-08-27 21:47:38 +09:00
object_id.c ntfs: update misc operations 2026-02-19 21:50:56 +09:00
object_id.h ntfs: update in-memory, on-disk structures and headers 2026-02-19 21:48:06 +09:00
reparse.c ntfs: propagate reparse index insertion failure 2026-08-26 20:15:34 +09:00
reparse.h ntfs: parse REPARSE_TAG_WOF 2026-08-21 19:06:38 +09:00
runlist.c treewide: refresh kmalloc_obj() conversions 2026-09-04 21:37:00 -07:00
runlist.h ntfs: update in-memory, on-disk structures and headers 2026-02-19 21:48:06 +09:00
super.c - Make MFT extension work on existing Windows-created volumes by 2026-09-18 11:02:08 -07:00
sysctl.c ntfs: fix sysctl table registration and path 2026-03-01 14:53:37 +09:00
sysctl.h ntfs: update in-memory, on-disk structures and headers 2026-02-19 21:48:06 +09:00
time.h ntfs: update in-memory, on-disk structures and headers 2026-02-19 21:48:06 +09:00
unistr.c ntfs: update misc operations 2026-02-19 21:50:56 +09:00
upcase.c ntfs: update misc operations 2026-02-19 21:50:56 +09:00
volume.h ntfs: account for MFT records added during allocation 2026-09-13 11:41:40 +09:00
wof.c ntfs: read WOF chunks outside the decompression lock 2026-08-30 11:04:29 +09:00