[GIT PULL] f2fs for 5.4

From: Jaegeuk Kim
Date: Fri Sep 20 2019 - 16:01:11 EST

Hi Linus,

Could you please consider this pull request?

The following changes since commit b7e7c85dc7b0ea5ff821756c331489e3b151eed1:

Merge tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux (2019-08-16 10:51:47 -0700)

are available in the Git repository at:

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

for you to fetch changes up to fbbf779989d2ef9a51daaa4e53c0b2ecc8c55c4e:

f2fs: add a condition to detect overflow in f2fs_ioc_gc_range() (2019-09-17 13:56:15 -0700)


In this round, we introduced casefolding support in f2fs, and fixed various bugs
in individual features such as IO alignment, checkpoint=disable, quota, and

- support casefolding w/ enhancement in ext4
- support fiemap for directory

Bug fix:
- fix IO stuck during checkpoint=disable
- avoid infinite GC loop
- fix panic/overflow related to IO alignment feature
- fix livelock in swap file
- fix discard command leak
- disallow dio for atomic_write

Chao Yu (34):
f2fs: introduce {page,io}_is_mergeable() for readability
f2fs: fix panic of IO alignment feature
f2fs: disallow switching io_bits option during remount
f2fs: fix to drop meta/node pages during umount
f2fs: fix to avoid tagging SBI_QUOTA_NEED_REPAIR incorrectly
f2fs: fix to avoid discard command leak
f2fs: support fiemap() for directory inode
f2fs: fix to spread f2fs_is_checkpoint_ready()
f2fs: fix to detect cp error in f2fs_setxattr()
f2fs: fix to handle quota_{on,off} correctly
f2fs: disallow direct IO in atomic write
f2fs: fix to avoid call kvfree under spinlock
f2fs: use wrapped IS_SWAPFILE()
f2fs: fix to use more generic EOPNOTSUPP
f2fs: use wrapped f2fs_cp_error()
f2fs: fix to migrate blocks correctly during defragment
f2fs: fix wrong available node count calculation
Revert "f2fs: avoid out-of-range memory access"
f2fs: fix to avoid data corruption by forbidding SSR overwrite
f2fs: support FS_IOC_{GET,SET}FSLABEL
f2fs: allocate memory in batch in build_sit_info()
f2fs: introduce f2fs_match_name() for cleanup
f2fs: optimize case-insensitive lookups
f2fs: fix to writeout dirty inode during node flush
f2fs: fix wrong error injection path in inc_valid_block_count()
f2fs: clean up __bio_alloc()'s parameter
f2fs: enhance f2fs_is_checkpoint_ready()'s readability
f2fs: add missing documents of reserve_root/resuid/resgid
f2fs: fix error path of f2fs_convert_inline_page()
f2fs: fix to avoid accessing uninitialized field of inode page in is_alive()
f2fs: fix extent corrupotion during directIO in LFS mode
f2fs: fix to handle error path correctly in f2fs_map_blocks
f2fs: fix to fallback to buffered IO in IO aligned mode
f2fs: fix to add missing F2FS_IO_ALIGNED() condition

Daniel Rosenberg (3):
fs: Reserve flag for casefolding
f2fs: include charset encoding information in the superblock
f2fs: Support case-insensitive file name lookups

Goldwyn Rodrigues (1):
f2fs: fix inode rwsem regression

Jaegeuk Kim (4):
f2fs: fix livelock in swapfile writes
f2fs: fix flushing node pages when checkpoint is disabled
f2fs: convert inline_data in prior to i_size_write
f2fs: avoid infinite GC loop due to stale atomic files

Jia-Ju Bai (1):
fs: f2fs: Remove unnecessary checks of SM_I(sbi) in update_general_status()

Lihong Kou (2):
f2fs: remove duplicate code in f2fs_file_write_iter
f2fs: cleanup the code in build_sit_entries.

Lockywolf (1):
f2fs: Add a small clarification to CONFIG_FS_F2FS_FS_SECURITY

Sahitya Tummala (3):
f2fs: Fix indefinite loop in f2fs_gc()
f2fs: Fix indefinite loop in f2fs_gc()
f2fs: add a condition to detect overflow in f2fs_ioc_gc_range()

Surbhi Palande (1):
f2fs: check all the data segments against all node ones

YueHaibing (1):
f2fs: Fix build error while CONFIG_NLS=m

Documentation/ABI/testing/sysfs-fs-f2fs | 7 ++
Documentation/filesystems/f2fs.txt | 8 ++
fs/f2fs/Kconfig | 5 +-
fs/f2fs/data.c | 104 ++++++++++++------
fs/f2fs/debug.c | 4 +-
fs/f2fs/dir.c | 184 ++++++++++++++++++++++++++++++--
fs/f2fs/f2fs.h | 47 ++++++--
fs/f2fs/file.c | 162 ++++++++++++++++++++++------
fs/f2fs/gc.c | 27 ++++-
fs/f2fs/hash.c | 37 ++++++-
fs/f2fs/inline.c | 18 +++-
fs/f2fs/inode.c | 11 +-
fs/f2fs/namei.c | 54 ++++++----
fs/f2fs/node.c | 57 +++++++++-
fs/f2fs/segment.c | 135 ++++++++++++-----------
fs/f2fs/segment.h | 12 ++-
fs/f2fs/super.c | 156 +++++++++++++++++++++++++--
fs/f2fs/sysfs.c | 23 ++++
fs/f2fs/xattr.c | 6 ++
include/linux/f2fs_fs.h | 10 +-
include/uapi/linux/fs.h | 1 +
tools/include/uapi/linux/fs.h | 1 +
22 files changed, 865 insertions(+), 204 deletions(-)