[GIT PULL] f2fs update for 6.8-rc1

From: Jaegeuk Kim
Date: Thu Jan 11 2024 - 13:28:16 EST


Hi Linus,

Happy new year!

Could you please consider this pull request?

Thank you.

The following changes since commit 6bc40e44f1ddef16a787f3501b97f1fff909177c:

Merge tag 'ovl-fixes-6.7-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/overlayfs/vfs (2023-11-17 09:18:48 -0500)

are available in the Git repository at:

git://git.kernel.org/pub/scm/linux/kernel/git/jaegeuk/f2fs.git tags/f2fs-for-6.8-rc1

for you to fetch changes up to c3c2d45b9050180974e35ec8672c6e788adc236a:

f2fs: show more discard status by sysfs (2023-12-26 13:07:26 -0800)

----------------------------------------------------------------
f2fs update for 6.8-rc1

In this series, we've some progress to support Zoned block device regarding to
the power-cut recovery flow and enabling checkpoint=disable feature which is
essential for Android OTA. Other than that, some patches touched sysfs entries
and tracepoints which are minor, while several bug fixes on error handlers and
compression flows are good to improve the overall stability.

Enhancement:
- enable checkpoint=disable for zoned block device
- sysfs entries such as discard status, discard_io_aware, dir_level
- tracepoints such as f2fs_vm_page_mkwrite(), f2fs_rename(), f2fs_new_inode()
- use shared inode lock during f2fs_fiemap() and f2fs_seek_block()

Bug fix:
- address some power-cut recovery issues on zoned block device
- handle errors and logics on do_garbage_collect(), f2fs_reserve_new_block(),
f2fs_move_file_range(), f2fs_recover_xattr_data()
- don't set FI_PREALLOCATED_ALL for partial write
- fix to update iostat correctly in f2fs_filemap_fault()
- fix to wait on block writeback for post_read case
- fix to tag gcing flag on page during block migration
- restrict max filesize for 16K f2fs
- fix to avoid dirent corruption
- explicitly null-terminate the xattr list

There are also several clean-up patches to remove dead codes and better
readability.

----------------------------------------------------------------
Chao Yu (18):
f2fs: clean up w/ dotdot_name
f2fs: use shared inode lock during f2fs_fiemap()
f2fs: fix to check return value of f2fs_reserve_new_block()
f2fs: fix to avoid dirent corruption
f2fs: introduce tracepoint for f2fs_rename()
f2fs: show i_mode in trace_f2fs_new_inode()
f2fs: sysfs: support discard_io_aware
f2fs: delete obsolete FI_FIRST_BLOCK_WRITTEN
f2fs: delete obsolete FI_DROP_CACHE
f2fs: introduce get_dnode_addr() to clean up codes
f2fs: update blkaddr in __set_data_blkaddr() for cleanup
f2fs: introduce f2fs_invalidate_internal_cache() for cleanup
f2fs: add tracepoint for f2fs_vm_page_mkwrite()
f2fs: fix to tag gcing flag on page during block migration
f2fs: fix to wait on block writeback for post_read case
f2fs: fix to check compress file in f2fs_move_file_range()
f2fs: fix to update iostat correctly in f2fs_filemap_fault()
f2fs: don't set FI_PREALLOCATED_ALL for partial write

Daniel Rosenberg (1):
f2fs: Restrict max filesize for 16K f2fs

Eric Biggers (1):
f2fs: explicitly null-terminate the xattr list

Jaegeuk Kim (6):
f2fs: skip adding a discard command if exists
f2fs: allow checkpoint=disable for zoned block device
f2fs: allocate new section if it's not new
f2fs: fix write pointers on zoned device after roll forward
f2fs: check write pointers when checkpoint=disable
f2fs: let's finish or reset zones all the time

Kevin Hao (1):
f2fs: Use wait_event_freezable_timeout() for freezable kthread

Yang Hubin (1):
f2fs: the name of a struct is wrong in a comment.

Yongpeng Yang (2):
f2fs: Constrain the modification range of dir_level in the sysfs
f2fs: Add error handling for negative returns from do_garbage_collect

Zhiguo Niu (2):
f2fs: fix to check return value of f2fs_recover_xattr_data
f2fs: show more discard status by sysfs

zhangxirui (1):
f2fs: use inode_lock_shared instead of inode_lock in f2fs_seek_block()

Documentation/ABI/testing/sysfs-fs-f2fs | 21 +++++
fs/f2fs/compress.c | 6 +-
fs/f2fs/data.c | 48 ++++-------
fs/f2fs/f2fs.h | 46 +++++++----
fs/f2fs/file.c | 66 +++++++--------
fs/f2fs/gc.c | 16 ++--
fs/f2fs/inode.c | 57 ++++---------
fs/f2fs/namei.c | 23 +++---
fs/f2fs/node.c | 6 +-
fs/f2fs/recovery.c | 25 ++++--
fs/f2fs/segment.c | 138 +++++++++++---------------------
fs/f2fs/super.c | 16 ++--
fs/f2fs/sysfs.c | 50 ++++++++++++
fs/f2fs/xattr.c | 17 +++-
include/linux/f2fs_fs.h | 2 +-
include/trace/events/f2fs.h | 127 +++++++++++++++++++++++++----
16 files changed, 395 insertions(+), 269 deletions(-)