linux/fs/f2fs
Linus Torvalds 86d563ac5f f2fs-for-6.18-rc1
This release focuses on two primary updates for Android devices. First, it sets
 hash-based file name lookup as the default method to improve performance, while
 retaining an option to fall back to a linear lookup. Second, it resolves a
 persistent issue with the checkpoint=enable feature. The update further boosts
 performance by prefetching node blocks, merging FUA writes more efficiently, and
 optimizing block allocation policies.
 
 The release is rounded out by a comprehensive set of bug fixes that address
 memory safety, data integrity, and potential system hangs, along with minor
 documentation and code clean-ups.
 
 Enhancement:
  - add mount option and sysfs entry to tune the lookup mode
  - dump more information and add a timeout when enabling/disabling checkpoints
  - readahead node blocks in F2FS_GET_BLOCK_PRECACHE mode
  - merge FUA command with the existing writes
  - allocate HOT_DATA for IPU writes
  - Use allocate_section_policy to control write priority in multi-devices setups
  - add reserved nodes for privileged users
  - Add bggc_io_aware to adjust the priority of BG_GC when issuing IO
  - show the list of donation files
 
 Bug fix:
  - add missing dput() when printing the donation list
  - fix UAF issue in f2fs_merge_page_bio()
  - add sanity check on ei.len in __update_extent_tree_range()
  - fix infinite loop in __insert_extent_tree()
  - fix zero-sized extent for precache extents
  - fix to mitigate overhead of f2fs_zero_post_eof_page()
  - fix to avoid migrating empty section
  - fix to truncate first page in error path of f2fs_truncate()
  - fix to update map->m_next_extent correctly in f2fs_map_blocks()
  - fix wrong layout information on 16KB page
  - fix to do sanity check on node footer for non inode dnode
  - fix to avoid NULL pointer dereference in f2fs_check_quota_consistency()
  - fix to detect potential corrupted nid in free_nid_list
  - fix to clear unusable_cap for checkpoint=enable
  - fix to zero data after EOF for compressed file correctly
  - fix to avoid overflow while left shift operation
  - fix condition in __allow_reserved_blocks()
 -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEE00UqedjCtOrGVvQiQBSofoJIUNIFAmjgDGsACgkQQBSofoJI
 UNICWQ//VJPl1HPhdvWB1QhGIL/kt0/9yxhmgdz3NAeU399NfE9rTvMQC9gunLV0
 EW0o0EUhI/nOM+m/bOKlqwvklYe6AcO4RglXDzE3eq13k3Z3g3phM+YUwXQib/m5
 jRcDWnHwSd9YY5iTHcJlxsVlWBe8nEQXJlHjo6+Iq70bLfT50hTiqPbgYwjoBy+B
 ISolj70XIFXlPsciG9AW7VOGjJBPMsNsRqrd08neYxVycIhC8rcolTLm+8hUQkLc
 9y/E+wYypYlaHrN8jBqYLNOXBffql+9qOFDKAXRwDvfVxt4nIlLUHzcLvtVLDGC3
 hTMPIcKm8D3EwqxY4SjpQH66EkC63XrquFm9zveU4ckJhs4++Kb9uwuKUofNhCWj
 8gw9OKafb8SSoBimjnCpQpXecvfwMbIoTUPJ5ytpNV+q27eBs+pe3lkDcA2O4Xdu
 SEMGeBlrxvOAgrRbnE65uIv/GjXcUK9LqXERuErjNs/YJOrj/ByDT2wJH5yqASwH
 9csO/3fKc91EAGy+Kd49z3E8S2wuoI+22noir/AB7WKyRg5ZO7q3ZiZxqsrc1iJN
 Z/gh0QrWVQVVnn23z8VPArQX2fMZQ8iOMvcM54G+05ipj3mUBNT5eZlyEPb3FcUe
 o4XvTtKkcFhEIawf+WgED07PBpdzz5w1f8hx3EWCLda0LacHILQ=
 =cIQy
 -----END PGP SIGNATURE-----

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

Pull f2fs updates from Jaegeuk Kim:
 "This focuses on two primary updates for Android devices.

  First, it sets hash-based file name lookup as the default method to
  improve performance, while retaining an option to fall back to a
  linear lookup.

  Second, it resolves a persistent issue with the 'checkpoint=enable'
  feature.

  The update further boosts performance by prefetching node blocks,
  merging FUA writes more efficiently, and optimizing block allocation
  policies.

  The release is rounded out by a comprehensive set of bug fixes that
  address memory safety, data integrity, and potential system hangs,
  along with minor documentation and code clean-ups.

  Enhancements:
   - add mount option and sysfs entry to tune the lookup mode
   - dump more information and add a timeout when enabling/disabling
     checkpoints
   - readahead node blocks in F2FS_GET_BLOCK_PRECACHE mode
   - merge FUA command with the existing writes
   - allocate HOT_DATA for IPU writes
   - Use allocate_section_policy to control write priority in
     multi-devices setups
   - add reserved nodes for privileged users
   - Add bggc_io_aware to adjust the priority of BG_GC when issuing IO
   - show the list of donation files

  Bug fixes:
   - add missing dput() when printing the donation list
   - fix UAF issue in f2fs_merge_page_bio()
   - add sanity check on ei.len in __update_extent_tree_range()
   - fix infinite loop in __insert_extent_tree()
   - fix zero-sized extent for precache extents
   - fix to mitigate overhead of f2fs_zero_post_eof_page()
   - fix to avoid migrating empty section
   - fix to truncate first page in error path of f2fs_truncate()
   - fix to update map->m_next_extent correctly in f2fs_map_blocks()
   - fix wrong layout information on 16KB page
   - fix to do sanity check on node footer for non inode dnode
   - fix to avoid NULL pointer dereference in
     f2fs_check_quota_consistency()
   - fix to detect potential corrupted nid in free_nid_list
   - fix to clear unusable_cap for checkpoint=enable
   - fix to zero data after EOF for compressed file correctly
   - fix to avoid overflow while left shift operation
   - fix condition in __allow_reserved_blocks()"

* tag 'f2fs-for-6.18-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/jaegeuk/f2fs: (43 commits)
  f2fs: add missing dput() when printing the donation list
  f2fs: fix UAF issue in f2fs_merge_page_bio()
  f2fs: readahead node blocks in F2FS_GET_BLOCK_PRECACHE mode
  f2fs: add sanity check on ei.len in __update_extent_tree_range()
  f2fs: fix infinite loop in __insert_extent_tree()
  f2fs: fix zero-sized extent for precache extents
  f2fs: fix to mitigate overhead of f2fs_zero_post_eof_page()
  f2fs: fix to avoid migrating empty section
  f2fs: fix to truncate first page in error path of f2fs_truncate()
  f2fs: fix to update map->m_next_extent correctly in f2fs_map_blocks()
  f2fs: fix wrong layout information on 16KB page
  f2fs: clean up error handing of f2fs_submit_page_read()
  f2fs: avoid unnecessary folio_clear_uptodate() for cleanup
  f2fs: merge FUA command with the existing writes
  f2fs: allocate HOT_DATA for IPU writes
  f2fs: Use allocate_section_policy to control write priority in multi-devices setups
  Documentation: f2fs: Reword title
  Documentation: f2fs: Indent compression_mode option list
  Documentation: f2fs: Wrap snippets in literal code blocks
  Documentation: f2fs: Span write hint table section rows
  ...
2025-10-03 14:05:12 -07:00
..
Kconfig f2fs: switch to using the crc32 library 2024-12-01 17:23:02 -08:00
Makefile
acl.c f2fs: Pass a folio to f2fs_getxattr() 2025-04-28 15:26:42 +00:00
acl.h f2fs: Pass folios to f2fs_init_acl() 2025-04-28 15:26:41 +00:00
checkpoint.c f2fs: add time stats of checkpoint for debug 2025-08-11 17:03:27 +00:00
compress.c f2fs: clean up f2fs_truncate_partial_cluster() 2025-08-11 17:03:55 +00:00
data.c f2fs: fix UAF issue in f2fs_merge_page_bio() 2025-09-28 20:07:53 +00:00
debug.c f2fs: introduce is_cur{seg,sec}() 2025-07-09 18:02:20 +00:00
dir.c f2fs: add lookup_mode mount option 2025-08-11 17:03:27 +00:00
extent_cache.c f2fs: add sanity check on ei.len in __update_extent_tree_range() 2025-09-28 20:04:29 +00:00
f2fs.h f2fs-for-6.18-rc1 2025-10-03 14:05:12 -07:00
file.c f2fs: fix to mitigate overhead of f2fs_zero_post_eof_page() 2025-09-16 04:23:43 +00:00
gc.c f2fs: fix to avoid migrating empty section 2025-09-16 02:12:11 +00:00
gc.h f2fs: add gc_boost_gc_greedy sysfs node 2025-07-29 15:02:36 +00:00
hash.c
inline.c f2fs: Add folio counterparts to page_private_flags functions 2025-07-22 15:57:05 +00:00
inode.c f2fs: drop inode from the donation list when the last file is closed 2025-07-30 17:13:12 +00:00
iostat.c f2fs: add async reset zone command support 2023-06-12 13:04:09 -07:00
iostat.h
namei.c f2fs: Use a folio in f2fs_encrypted_get_link() 2025-07-22 15:57:54 +00:00
node.c f2fs: avoid unnecessary folio_clear_uptodate() for cleanup 2025-09-09 03:26:41 +00:00
node.h f2fs: fix to do sanity check on node footer for non inode dnode 2025-08-28 00:09:01 +00:00
recovery.c f2fs: fix to do sanity check on node footer for non inode dnode 2025-08-28 00:09:01 +00:00
segment.c f2fs: allocate HOT_DATA for IPU writes 2025-09-02 20:16:04 +00:00
segment.h f2fs: clean up w/ get_left_section_blocks() 2025-08-20 17:44:10 +00:00
shrinker.c f2fs: handle error cases of memory donation 2025-05-06 15:46:55 +00:00
super.c f2fs-for-6.18-rc1 2025-10-03 14:05:12 -07:00
sysfs.c f2fs: add missing dput() when printing the donation list 2025-10-03 03:16:10 +00:00
verity.c f2fs: move verity info pointer to fs-specific part of inode 2025-08-21 13:58:08 +02:00
xattr.c f2fs: Pass a folio to inline_xattr_addr() 2025-04-28 15:26:43 +00:00
xattr.h f2fs: Pass a folio to f2fs_getxattr() 2025-04-28 15:26:42 +00:00