linux/fs/f2fs
Linus Torvalds d46dd0d883 f2fs-for-7.1-rc1
In this round, the changes primarily focus on resolving race conditions,
 memory safety issues (UAF), and improving the robustness of garbage
 collection (GC), and folio management.
 
 Enhancement:
  - add page-order information for large folio reads in iostat
  - add defrag_blocks sysfs node
 
 Bug fix:
  - fix uninitialized kobject put in f2fs_init_sysfs()
  - disallow setting an extension to both cold and hot
  - fix node_cnt race between extent node destroy and writeback
  - fix to preserve previous reserve_{blocks,node} value when remount
  - fix to freeze GC and discard threads quickly
  - fix false alarm of lockdep on cp_global_sem lock
  - fix data loss caused by incorrect use of nat_entry flag
  - fix to skip empty sections in f2fs_get_victim
  - fix inline data not being written to disk in writeback path
  - fix fsck inconsistency caused by FGGC of node block
  - fix fsck inconsistency caused by incorrect nat_entry flag usage
  - call f2fs_handle_critical_error() to set cp_error flag
  - fix fiemap boundary handling when read extent cache is incomplete
  - fix use-after-free of sbi in f2fs_compress_write_end_io()
  - fix UAF caused by decrementing sbi->nr_pages[] in f2fs_write_end_io()
  - fix incorrect file address mapping when inline inode is unwritten
  - fix incomplete search range in f2fs_get_victim when f2fs_need_rand_seg is enabled
  - fix to avoid memory leak in f2fs_rename()
 -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEE00UqedjCtOrGVvQiQBSofoJIUNIFAmnn7+kACgkQQBSofoJI
 UNIknA//ScYLuOhOmJJNBfmkEoUe5es04YRRq1OOBAvOCGw+Z/qg9unel9Qpneqg
 0xQ35rLKL6q7Y592ZOgWyipFTGhDBEbdJNP6eI9avBURoj9sFjDhFlmkVuUhjsns
 IgOSVgWSWqijWZOcBQbJGEm+N/W81Ktee1RUIDkcti66/uYIS+roTLDLbIyEhvkT
 DhsmUnYwoMy9cB5ag9rZuSWvEa8TI7UbelH78Oi/TqRYJu6ax+D99s6PzOFBH1EE
 FwNGoEMn3r1+2gqPVzDmtrz7A/cYtHVigaUT9d8/n2yygZhGaQ8whd0QoIlikgcW
 9n7Ymo3sns/yLEJURFqkB6Q5yFcZ30jRJZJb5CMNeqtuHQFoLjtcpEWqiQKGzzKY
 uUATMoG7F3QSn8AOVt6GaxnpvNb/NiVZ1Fsvt1Cgq8hUjxf1v2AhHZnvcK0EDAqa
 PvEYSriB56Qtnt1UfbNqydxSiviDDjtaHDprFIvAyEavDCs2F7gzrHEW7IHzG2XR
 Io9hnaBNUJs065zU8qWHyetIZCjPySnPOkZ42eaMEsDMhDtlC3WDOB3ZkmFnh9u2
 2K/SaIpQInGyP2LGLzNB/khWhDcZ4aGciCd7b5Ul9WkrfZTzrN9XI/F2w7dr0R6q
 tE6xJThraGk7NjO67xUq/M2KnVAHN5gTPRY9OmEboEdTO+6pC5w=
 =0oeQ
 -----END PGP SIGNATURE-----

Merge tag 'f2fs-for-7.1-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/jaegeuk/f2fs

Pull f2fs updates from Jaegeuk Kim:
 "In this round, the changes primarily focus on resolving race
  conditions, memory safety issues (UAF), and improving the robustness
  of garbage collection (GC), and folio management.

  Enhancements:
   - add page-order information for large folio reads in iostat
   - add defrag_blocks sysfs node

  Bug fixes:
   - fix uninitialized kobject put in f2fs_init_sysfs()
   - disallow setting an extension to both cold and hot
   - fix node_cnt race between extent node destroy and writeback
   - preserve previous reserve_{blocks,node} value when remount
   - freeze GC and discard threads quickly
   - fix false alarm of lockdep on cp_global_sem lock
   - fix data loss caused by incorrect use of nat_entry flag
   - skip empty sections in f2fs_get_victim
   - fix inline data not being written to disk in writeback path
   - fix fsck inconsistency caused by FGGC of node block
   - fix fsck inconsistency caused by incorrect nat_entry flag usage
   - call f2fs_handle_critical_error() to set cp_error flag
   - fix fiemap boundary handling when read extent cache is incomplete
   - fix use-after-free of sbi in f2fs_compress_write_end_io()
   - fix UAF caused by decrementing sbi->nr_pages[] in f2fs_write_end_io()
   - fix incorrect file address mapping when inline inode is unwritten
   - fix incomplete search range in f2fs_get_victim when f2fs_need_rand_seg is enabled
   - avoid memory leak in f2fs_rename()"

* tag 'f2fs-for-7.1-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/jaegeuk/f2fs: (35 commits)
  f2fs: add page-order information for large folio reads in iostat
  f2fs: do not support mmap write for large folio
  f2fs: fix uninitialized kobject put in f2fs_init_sysfs()
  f2fs: protect extension_list reading with sb_lock in f2fs_sbi_show()
  f2fs: disallow setting an extension to both cold and hot
  f2fs: fix node_cnt race between extent node destroy and writeback
  f2fs: allow empty mount string for Opt_usr|grp|projjquota
  f2fs: fix to preserve previous reserve_{blocks,node} value when remount
  f2fs: invalidate block device page cache on umount
  f2fs: fix to freeze GC and discard threads quickly
  f2fs: fix to avoid uninit-value access in f2fs_sanity_check_node_footer
  f2fs: fix false alarm of lockdep on cp_global_sem lock
  f2fs: fix data loss caused by incorrect use of nat_entry flag
  f2fs: fix to skip empty sections in f2fs_get_victim
  f2fs: fix inline data not being written to disk in writeback path
  f2fs: fix fsck inconsistency caused by FGGC of node block
  f2fs: fix fsck inconsistency caused by incorrect nat_entry flag usage
  f2fs: fix to do sanity check on dcc->discard_cmd_cnt conditionally
  f2fs: refactor node footer flag setting related code
  f2fs: refactor f2fs_move_node_folio function
  ...
2026-04-21 14:50:04 -07:00
..
acl.c fs: inline current_umask() and move it to fs_struct.h 2025-11-05 22:51:23 +01:00
acl.h f2fs: Pass folios to f2fs_init_acl() 2025-04-28 15:26:41 +00:00
checkpoint.c f2fs-for-7.1-rc1 2026-04-21 14:50:04 -07:00
compress.c f2fs-for-7.1-rc1 2026-04-21 14:50:04 -07:00
data.c f2fs-for-7.1-rc1 2026-04-21 14:50:04 -07:00
debug.c f2fs: Add defrag_blocks sysfs node 2026-03-24 17:20:59 +00:00
dir.c treewide: change inode->i_ino from unsigned long to u64 2026-03-06 14:31:28 +01:00
extent_cache.c f2fs-for-7.1-rc1 2026-04-21 14:50:04 -07:00
f2fs.h f2fs-for-7.1-rc1 2026-04-21 14:50:04 -07:00
file.c f2fs-for-7.1-rc1 2026-04-21 14:50:04 -07:00
gc.c f2fs-for-7.1-rc1 2026-04-21 14:50:04 -07:00
gc.h f2fs: set default valid_thresh_ratio to 80 for zoned devices 2025-10-24 21:23:55 +00:00
hash.c fs: add helpers name_is_dot{,dot,_dotdot} 2026-01-29 10:06:59 +01:00
inline.c f2fs-for-7.1-rc1 2026-04-21 14:50:04 -07:00
inode.c f2fs-for-7.1-rc1 2026-04-21 14:50:04 -07:00
iostat.c f2fs: add page-order information for large folio reads in iostat 2026-04-18 22:44:42 +00:00
iostat.h f2fs: add page-order information for large folio reads in iostat 2026-04-18 22:44:42 +00:00
Kconfig f2fs: switch to using the crc32 library 2024-12-01 17:23:02 -08:00
Makefile f2fs: separate out iostat feature 2021-08-23 10:25:51 -07:00
namei.c f2fs-for-7.1-rc1 2026-04-21 14:50:04 -07:00
node.c f2fs-for-7.1-rc1 2026-04-21 14:50:04 -07:00
node.h f2fs: refactor node footer flag setting related code 2026-04-02 16:24:18 +00:00
recovery.c treewide: change inode->i_ino from unsigned long to u64 2026-03-06 14:31:28 +01:00
segment.c f2fs: fix to freeze GC and discard threads quickly 2026-04-02 16:24:20 +00:00
segment.h f2fs: stop using writeback internals for dirty_exceeded checks 2026-02-17 13:25:14 +01:00
shrinker.c f2fs: handle error cases of memory donation 2025-05-06 15:46:55 +00:00
super.c f2fs: allow empty mount string for Opt_usr|grp|projjquota 2026-04-13 22:50:51 +00:00
sysfs.c f2fs: fix uninitialized kobject put in f2fs_init_sysfs() 2026-04-13 22:53:17 +00:00
verity.c fsverity: use a hashtable to find the fsverity_info 2026-02-04 11:31:54 -08:00
xattr.c treewide: change inode->i_ino from unsigned long to u64 2026-03-06 14:31:28 +01:00
xattr.h f2fs: use global inline_xattr_slab instead of per-sb slab cache 2025-12-04 02:00:02 +00:00