• Linus Torvalds's avatar
    Merge tag 'f2fs-for-6.2-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/jaegeuk/f2fs · 041fae9c
    Linus Torvalds authored
    Pull f2fs updates from Jaegeuk Kim:
     "In this round, we've added two features: F2FS_IOC_START_ATOMIC_REPLACE
      and a per-block age-based extent cache.
    
      F2FS_IOC_START_ATOMIC_REPLACE is a variant of the previous atomic
      write feature which guarantees a per-file atomicity. It would be more
      efficient than AtomicFile implementation in Android framework.
    
      The per-block age-based extent cache implements another type of extent
      cache in memory which keeps the per-block age in a file, so that block
      allocator could split the hot and cold data blocks more accurately.
    
      Enhancements:
       - introduce F2FS_IOC_START_ATOMIC_REPLACE
       - refactor extent_cache to add a new per-block-age-based extent cache support
       - introduce discard_urgent_util, gc_mode, max_ordered_discard sysfs knobs
       - add proc entry to show discard_plist info
       - optimize iteration over sparse directories
       - add barrier mount option
    
      Bug fixes:
       - avoid victim selection from previous victim section
       - fix to enable compress for newly created file if extension matches
       - set zstd compress level correctly
       - initialize locks early in f2fs_fill_super() to fix bugs reported by syzbot
       - correct i_size change for atomic writes
       - allow to read node block after shutdown
       - allow to set compression for inlined file
       - fix gc mode when gc_urgent_high_remaining is 1
       - should put a page when checking the summary info
    
      Minor fixes and various clean-ups in GC, discard, debugfs, sysfs, and
      doc"
    
    * tag 'f2fs-for-6.2-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/jaegeuk/f2fs: (63 commits)
      f2fs: reset wait_ms to default if any of the victims have been selected
      f2fs: fix some format WARNING in debug.c and sysfs.c
      f2fs: don't call f2fs_issue_discard_timeout() when discard_cmd_cnt is 0 in f2fs_put_super()
      f2fs: fix iostat parameter for discard
      f2fs: Fix spelling mistake in label: free_bio_enrty_cache -> free_bio_entry_cache
      f2fs: add block_age-based extent cache
      f2fs: allocate the extent_cache by default
      f2fs: refactor extent_cache to support for read and more
      f2fs: remove unnecessary __init_extent_tree
      f2fs: move internal functions into extent_cache.c
      f2fs: specify extent cache for read explicitly
      f2fs: introduce f2fs_is_readonly() for readability
      f2fs: remove F2FS_SET_FEATURE() and F2FS_CLEAR_FEATURE() macro
      f2fs: do some cleanup for f2fs module init
      MAINTAINERS: Add f2fs bug tracker link
      f2fs: remove the unused flush argument to change_curseg
      f2fs: open code allocate_segment_by_default
      f2fs: remove struct segment_allocation default_salloc_ops
      f2fs: introduce discard_urgent_util sysfs node
      f2fs: define MIN_DISCARD_GRANULARITY macro
      ...
    041fae9c
file.c 118 KB