[GIT PULL] f2fs update for 6.2-rc1
From: Jaegeuk Kim
Date: Wed Dec 14 2022 - 17:39:31 EST
Hi Linus,
Could you please consider this pull request?
Note that, since I attached Reviewed-by to some recent committed patches, they
show quite new in the git log, but have been soaked in linux-next for a while.
In addition, one patch on top of the tree is still quite new, but it should be
a low risk of change. Hence, I added.
The following changes since commit bbb8ceb5e2421184db9560e9d2cfaf858e1db616:
Merge tag 'v6.1-p2' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6 (2022-10-17 10:20:04 -0700)
are available in the Git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/jaegeuk/f2fs.git tags/f2fs-for-6.2-rc1
for you to fetch changes up to 26a8057a1ada97b528b93fdf3ac4fd03170f1900:
f2fs: reset wait_ms to default if any of the victims have been selected (2022-12-12 15:18:36 -0800)
----------------------------------------------------------------
f2fs-for-6.2-rc1
In this round, we've added two features: 1) F2FS_IOC_START_ATOMIC_REPLACE and
2) per-block age-based extent cache. 1) 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. 2) 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.
Enhancement:
- 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 fix
- 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.
----------------------------------------------------------------
Chao Yu (8):
f2fs: fix to invalidate dcc->f2fs_issue_discard in error path
f2fs: support fault injection for f2fs_is_valid_blkaddr()
f2fs: fix to destroy sbi->post_read_wq in error path of f2fs_fill_super()
f2fs: fix to avoid accessing uninitialized spinlock
f2fs: optimize iteration over sparse directories
f2fs: fix to do sanity check on i_extra_isize in is_alive()
f2fs: truncate blocks in batch in __complete_revoke_list()
MAINTAINERS: Add f2fs bug tracker link
Christoph Hellwig (3):
f2fs: remove struct segment_allocation default_salloc_ops
f2fs: open code allocate_segment_by_default
f2fs: remove the unused flush argument to change_curseg
Colin Ian King (1):
f2fs: Fix spelling mistake in label: free_bio_enrty_cache -> free_bio_entry_cache
Daeho Jeong (2):
f2fs: correct i_size change for atomic writes
f2fs: introduce F2FS_IOC_START_ATOMIC_REPLACE
Dongdong Zhang (1):
f2fs: fix normal discard process
Jaegeuk Kim (11):
f2fs: let's avoid to get cp_rwsem twice by f2fs_evict_inode by d_invalidate
f2fs: allow to set compression for inlined file
f2fs: use sysfs_emit instead of sprintf
f2fs: add missing bracket in doc
f2fs: allow to read node block after shutdown
f2fs: specify extent cache for read explicitly
f2fs: move internal functions into extent_cache.c
f2fs: remove unnecessary __init_extent_tree
f2fs: refactor extent_cache to support for read and more
f2fs: allocate the extent_cache by default
f2fs: add block_age-based extent cache
Keoseong Park (1):
f2fs: Fix typo in comments
Mukesh Ojha (2):
f2fs: fix the assign logic of iocb
f2fs: fix the msg data type
Pavel Machek (1):
f2fs: should put a page when checking the summary info
Sheng Yong (3):
f2fs: set zstd compress level correctly
f2fs: fix to enable compress for newly created file if extension matches
f2fs: move set_file_temperature into f2fs_new_inode
Tetsuo Handa (1):
f2fs: initialize locks earlier in f2fs_fill_super()
Yangtao Li (22):
f2fs: remove batched_trim_sections node
f2fs: fix gc mode when gc_urgent_high_remaining is 1
f2fs: cleanup in f2fs_create_flush_cmd_control()
f2fs: add barrier mount option
f2fs: introduce max_ordered_discard sysfs node
f2fs: fix return val in f2fs_start_ckpt_thread()
f2fs: introduce gc_mode sysfs node
f2fs: replace gc_urgent_high_remaining with gc_remaining_trials
f2fs: add proc entry to show discard_plist info
f2fs: fix to set flush_merge opt and show noflush_merge
f2fs: remove submit label in __submit_discard_cmd()
f2fs: fix description about discard_granularity node
f2fs: make __queue_discard_cmd() return void
f2fs: init discard policy after thread wakeup
f2fs: define MIN_DISCARD_GRANULARITY macro
f2fs: introduce discard_urgent_util sysfs node
f2fs: do some cleanup for f2fs module init
f2fs: remove F2FS_SET_FEATURE() and F2FS_CLEAR_FEATURE() macro
f2fs: introduce f2fs_is_readonly() for readability
f2fs: fix iostat parameter for discard
f2fs: don't call f2fs_issue_discard_timeout() when discard_cmd_cnt is 0 in f2fs_put_super()
f2fs: fix some format WARNING in debug.c and sysfs.c
Yonggil Song (1):
f2fs: avoid victim selection from previous victim section
Yuwei Guan (4):
f2fs: fix to alloc_mode changed after remount on a small volume device
f2fs: cleanup for 'f2fs_tuning_parameters' function
f2fs: change type for 'sbi->readdir_ra'
f2fs: reset wait_ms to default if any of the victims have been selected
Zhang Qilong (1):
f2fs: Fix the race condition of resize flag between resizefs
wangkailong@xxxxxxx (1):
f2fs: replace ternary operator with max()
Documentation/ABI/testing/sysfs-fs-f2fs | 47 ++-
Documentation/filesystems/f2fs.rst | 13 +-
MAINTAINERS | 1 +
fs/f2fs/checkpoint.c | 9 +-
fs/f2fs/compress.c | 48 +--
fs/f2fs/data.c | 54 +--
fs/f2fs/debug.c | 131 ++++--
fs/f2fs/dir.c | 36 +-
fs/f2fs/extent_cache.c | 693 +++++++++++++++++++++++---------
fs/f2fs/f2fs.h | 278 +++++++------
fs/f2fs/file.c | 46 ++-
fs/f2fs/gc.c | 79 ++--
fs/f2fs/inode.c | 20 +-
fs/f2fs/namei.c | 391 +++++++++---------
fs/f2fs/node.c | 19 +-
fs/f2fs/node.h | 3 +-
fs/f2fs/recovery.c | 4 +-
fs/f2fs/segment.c | 201 +++++----
fs/f2fs/segment.h | 6 -
fs/f2fs/shrinker.c | 25 +-
fs/f2fs/super.c | 126 +++---
fs/f2fs/sysfs.c | 164 ++++++--
include/trace/events/f2fs.h | 176 ++++++--
include/uapi/linux/f2fs.h | 1 +
24 files changed, 1643 insertions(+), 928 deletions(-)