[GIT PULL] f2fs update for 5.13-rc1

From: Jaegeuk Kim
Date: Mon May 03 2021 - 19:25:01 EST


Hi Linus,

Could you please consider this pull request?

Thanks,

The following changes since commit 344178334b0971a1ad5f36b76d7b739400e46ec6:

Merge tag 'sound-5.12-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound (2021-03-12 12:01:26 -0800)

are available in the Git repository at:

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

for you to fetch changes up to 9557727876674893d35940fddbd03d3b505e7ed8:

f2fs: drop inplace IO if fs status is abnormal (2021-04-26 09:50:39 -0700)

----------------------------------------------------------------
f2fs-for-5.13-rc1

In this round, we added a new mount option, "checkpoint_merge", which introduces
a kernel thread dealing with the f2fs checkpoints. Once we start to manage the
IO priority along with blk-cgroup, the checkpoint operation can be processed in
a lower priority under the process context. Since the checkpoint holds all the
filesystem operations, we give a higher priority to the checkpoint thread all
the time.

Enhancement:
- introduce gc_merge mount option to introduce a checkpoint thread
- improve to run discard thread efficiently
- allow modular compression algorithms
- expose # of overprivision segments to sysfs
- expose runtime compression stat to sysfs

Bug fix:
- fix OOB memory access by the node id lookup
- avoid touching checkpointed data in the checkpoint-disabled mode
- fix the resizing flow to avoid kernel panic and race conditions
- fix block allocation issues on pinned files
- address some swapfile issues
- fix hugtask problem and kernel panic during atomic write operations
- don't start checkpoint thread in RO

And, we've cleaned up some kernel coding style and build warnings. In addition,
we fixed some minor race conditions and error handling routines.

----------------------------------------------------------------
Chao Yu (25):
f2fs: fix to allow migrating fully valid segment
f2fs: fix panic during f2fs_resize_fs()
f2fs: avoid unused f2fs_show_compress_options()
f2fs: remove unused FORCE_FG_GC macro
f2fs: update comments for explicit memory barrier
f2fs: check discard command number before traversing discard pending list
f2fs: remove unused file_clear_encrypt()
f2fs: fix to align to section for fallocate() on pinned file
f2fs: don't start checkpoint thread in readonly mountpoint
f2fs: fix to avoid out-of-bounds memory access
f2fs: fix error path of f2fs_remount()
f2fs: fix to update last i_size if fallocate partially succeeds
f2fs: fix to avoid touching checkpointed data in get_victim()
f2fs: delete empty compress.h
f2fs: fix to cover __allocate_new_section() with curseg_lock
f2fs: introduce gc_merge mount option
f2fs: fix to restrict mount condition on readonly block device
f2fs: fix to avoid GC/mmap race with f2fs_truncate()
f2fs: fix to avoid accessing invalid fio in f2fs_allocate_data_block()
f2fs: document: add description about compressed space handling
f2fs: avoid duplicated codes for cleanup
f2fs: avoid using native allocate_segment_by_default()
f2fs: clean up left deprecated IO trace codes
f2fs: compress: remove unneed check condition
f2fs: drop inplace IO if fs status is abnormal

Chengguang Xu (1):
f2fs: fix to use per-inode maxbytes in f2fs_fiemap

Colin Ian King (1):
f2fs: fix a redundant call to f2fs_balance_fs if an error occurs

Daeho Jeong (1):
f2fs: add sysfs nodes to get runtime compression stat

Eric Biggers (1):
f2fs: fix error handling in f2fs_end_enable_verity()

Geert Uytterhoeven (1):
f2fs: compress: Allow modular (de)compression algorithms

Gustavo A. R. Silva (1):
f2fs: Replace one-element array with flexible-array member

Jaegeuk Kim (2):
f2fs: expose # of overprivision segments
f2fs: set checkpoint_merge by default

Ruiqi Gong (1):
f2fs: fix a typo in inode.c

Sahitya Tummala (2):
f2fs: allow to change discard policy based on cached discard cmds
f2fs: fix the periodic wakeups of discard thread

Wan Jiabing (1):
f2fs: remove unnecessary struct declaration

Wang Xiaojun (1):
f2fs: fix wrong alloc_type in f2fs_do_replace_block

Weichao Guo (1):
f2fs: do not use AT_SSR mode in FG_GC & high urgent BG_GC

Yi Chen (1):
f2fs: fix to avoid NULL pointer dereference

Yi Zhuang (2):
f2fs: Fix a hungtask problem in atomic write
f2fs: clean up build warnings

huangjianan@xxxxxxxx (3):
f2fs: remove unnecessary IS_SWAPFILE check
f2fs: fix last_lblock check in check_swap_activate_fast
f2fs: check if swapfile is section-alligned

jiahao (1):
f2fs: fix a spacing coding style

qiulaibin (1):
f2fs: fix wrong comment of nat_tree_lock

xuyehan (1):
f2fs: fix a spelling error

Documentation/ABI/testing/sysfs-fs-f2fs | 31 +++++-
Documentation/filesystems/f2fs.rst | 14 +++
fs/f2fs/Kconfig | 16 ++-
fs/f2fs/acl.c | 1 +
fs/f2fs/checkpoint.c | 9 +-
fs/f2fs/compress.c | 15 +--
fs/f2fs/compress.h | 0
fs/f2fs/data.c | 125 ++++++++++++++++++----
fs/f2fs/debug.c | 3 +
fs/f2fs/dir.c | 1 +
fs/f2fs/f2fs.h | 55 ++++++----
fs/f2fs/file.c | 51 +++++----
fs/f2fs/gc.c | 95 +++++++++++++----
fs/f2fs/gc.h | 6 ++
fs/f2fs/inline.c | 3 +-
fs/f2fs/inode.c | 3 +-
fs/f2fs/namei.c | 3 +
fs/f2fs/node.c | 19 +++-
fs/f2fs/node.h | 1 +
fs/f2fs/recovery.c | 3 +-
fs/f2fs/segment.c | 184 +++++++++++++++++++++++---------
fs/f2fs/segment.h | 16 ++-
fs/f2fs/super.c | 102 +++++++++++++-----
fs/f2fs/sysfs.c | 47 ++++++++
fs/f2fs/verity.c | 75 +++++++++----
fs/f2fs/xattr.c | 1 +
include/linux/f2fs_fs.h | 2 +-
27 files changed, 660 insertions(+), 221 deletions(-)
delete mode 100644 fs/f2fs/compress.h