[GIT PULL] f2fs update for 5.9-rc1
From: Jaegeuk Kim
Date: Mon Aug 10 2020 - 15:27:47 EST
Hi Linus,
Could you please consider this pull request?
Thanks,
The following changes since commit b29482fde649c72441d5478a4ea2c52c56d97a5e:
Merge branch 'work.epoll' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs (2020-06-10 18:09:13 -0700)
are available in the Git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/jaegeuk/f2fs.git tags/f2fs-for-5.9-rc1
for you to fetch changes up to 828add774f0d2bf930cdeca6c982c1fbcdd846bb:
f2fs: prepare a waiter before entering io_schedule (2020-08-03 20:54:58 -0700)
----------------------------------------------------------------
f2fs-for-5.9-rc1
In this round, we've added two small interfaces, 1) GC_URGENT_LOW mode for
performance, and 2) F2FS_IOC_SEC_TRIM_FILE ioctl for security. The new GC
mode allows Android to run some lower priority GCs in background, while new
ioctl discards user information without race condition when the account is
removed. In addition, some patches were merged to address latency-related
issues. We've fixed some compression-related bug fixes as well as edge race
conditions.
Enhancement:
- add GC_URGENT_LOW mode in gc_urgent
- introduce F2FS_IOC_SEC_TRIM_FILE ioctl
- bypass racy readahead to improve read latencies
- shrink node_write lock coverage to avoid long latency
Bug fix:
- fix missing compression flag control, i_size, and mount option
- fix deadlock between quota writes and checkpoint
- remove inode eviction path in synchronous path to avoid deadlock
- fix to wait GCed compressed page writeback
- fix a kernel panic in f2fs_is_compressed_page
- check page dirty status before writeback
- wait page writeback before update in node page write flow
- fix a race condition between f2fs_write_end_io and f2fs_del_fsync_node_entry
We've added some minor sanity checks and refactored trivial code blocks for
better readability and debugging information.
----------------------------------------------------------------
Chao Yu (21):
f2fs: add prefix for exported symbols
f2fs: fix to document reserved special compression extension
f2fs: shrink node_write lock coverage
f2fs: clean up parameter of f2fs_allocate_data_block()
f2fs: show more debug info for per-temperature log
f2fs: fix to wait page writeback before update
f2fs: fix wrong return value of f2fs_bmap_compress()
f2fs: support to trace f2fs_bmap()
f2fs: support to trace f2fs_fiemap()
f2fs: fix to check page dirty status before writeback
f2fs: split f2fs_allocate_new_segments()
f2fs: fix return value of move_data_block()
f2fs: fix to wait GCed compressed page writeback
f2fs: fix wrong description of compress feature in f2fs.rst
f2fs: fix error path in do_recover_data()
f2fs: don't keep meta inode pages used for compressed block migration
f2fs: compress: fix to avoid memory leak on cc->cpages
f2fs: compress: fix to update isize when overwriting compressed file
f2fs: compress: delay temp page allocation
f2fs: compress: add sanity check during compressed cluster read
f2fs: compress: disable compression mount option if compression is off
Daeho Jeong (3):
f2fs: add GC_URGENT_LOW mode in gc_urgent
f2fs: add F2FS_IOC_SEC_TRIM_FILE ioctl
f2fs: make file immutable even if releasing zero compression block
Dehe Gu (1):
f2fs: remove write attribute of main_blkaddr sysfs node
Denis Efremov (1):
f2fs: use kfree() instead of kvfree() to free superblock data
Eric Biggers (1):
f2fs: use generic names for generic ioctls
Jack Qiu (4):
f2fs: get the right gc victim section when section has several segments
f2fs: space related cleanup
f2fs: correct comment of f2fs_exist_written_data
f2fs: use macro instead of f2fs verity version
Jaegeuk Kim (5):
f2fs: avoid checkpatch error
f2fs: avoid readahead race condition
f2fs: should avoid inode eviction in synchronous path
f2fs: fix deadlock between quota writes and checkpoint
f2fs: prepare a waiter before entering io_schedule
Jia Yang (2):
f2fs: add parameter op_flag in f2fs_submit_page_read()
f2fs: Change the type of f2fs_flush_inline_data() to void
Li Guifu (1):
f2fs: fix use-after-free issue
Lihong Kou (1):
f2fs: make trace enter and end in pairs for unlink
Liu Song (2):
f2fs: fix typo in comment of f2fs_do_add_link
f2fs: remove useless parameter of __insert_free_nid()
Qilong Zhang (1):
f2fs: add f2fs_gc exception handle in f2fs_ioc_gc_range
Randy Dunlap (1):
f2fs: segment.h: delete a duplicated word
Wang Xiaojun (2):
f2fs: use kfree() to free variables allocated by match_strdup()
f2fs: remove the unused compr parameter
Wei Fang (1):
f2fs: remove useless truncate in f2fs_collapse_range()
Wuyun Zhao (1):
f2fs: fix a race condition between f2fs_write_end_io and f2fs_del_fsync_node_entry
Yu Changchun (1):
f2fs: fix an oops in f2fs_is_compressed_page
Yubo Feng (1):
f2fs: lost matching-pair of trace in f2fs_truncate_inode_blocks
Yufen Yu (1):
f2fs: replace test_and_set/clear_bit() with set/clear_bit()
Zhihao Cheng (1):
f2fs: update_sit_entry: Make the judgment condition of f2fs_bug_on more intuitive
Documentation/ABI/testing/sysfs-fs-f2fs | 4 +-
Documentation/filesystems/f2fs.rst | 6 +-
fs/f2fs/checkpoint.c | 15 +-
fs/f2fs/compress.c | 89 ++++++++---
fs/f2fs/data.c | 93 ++++++++---
fs/f2fs/debug.c | 64 ++++++--
fs/f2fs/dir.c | 2 +-
fs/f2fs/extent_cache.c | 18 +--
fs/f2fs/f2fs.h | 81 +++++-----
fs/f2fs/file.c | 264 +++++++++++++++++++++++++++-----
fs/f2fs/gc.c | 75 +++++----
fs/f2fs/inline.c | 21 ++-
fs/f2fs/inode.c | 4 +-
fs/f2fs/namei.c | 18 ++-
fs/f2fs/node.c | 38 +++--
fs/f2fs/recovery.c | 12 +-
fs/f2fs/segment.c | 129 +++++++++++-----
fs/f2fs/segment.h | 10 +-
fs/f2fs/super.c | 68 ++++----
fs/f2fs/sysfs.c | 23 ++-
fs/f2fs/verity.c | 6 +-
fs/f2fs/xattr.c | 4 +-
include/trace/events/f2fs.h | 63 ++++++++
23 files changed, 815 insertions(+), 292 deletions(-)