[GIT PULL] f2fs for 4.13-rc1

From: Jaegeuk Kim
Date: Mon Jul 10 2017 - 17:13:43 EST

Hi Linus,

Could you please consider this pull request?


The following changes since commit 2d3e4866dea96b0506395b47bfefb234f2088dac:

Merge tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm (2017-05-08 12:37:56 -0700)

are available in the git repository at:

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

for you to fetch changes up to 0abd675e97e60d40e61d59532f8118b0e439034e:

f2fs: support plain user/group quota (2017-07-08 23:12:27 -0700)


In this round, we've added new features such as disk quota and statx, and
modified internal bio management flow to merge more IOs depending on block
types. We've also made internal threads freezeable for Android battery life.
In addition to them, there are some patches to avoid lock contention as well
as a couple of deadlock conditions.

= Enhancement
- support usrquota, grpquota, and statx
- manage DATA/NODE typed bios separately to serialize more IOs
- modify f2fs_lock_op/wio_mutex to avoid lock contention
- prevent lock contention in migratepage

= Bug fix
- miss to load written inode flag
- fix worst case victim selection in GC
- freezeable GC and discard threads for Android battery life
- sanitize f2fs metadata to deal with security hole
- clean up sysfs-related code and docs

Chao Yu (26):
f2fs: support statx
f2fs: split wio_mutex
f2fs: introduce io_list for serialize data/node IOs
f2fs: show more info if fail to issue discard
f2fs: wake up all waiters in f2fs_submit_discard_endio
f2fs: wait discard IO completion without cmd_lock held
f2fs: introduce __wait_one_discard_bio
f2fs: add f2fs_bug_on in __remove_discard_cmd
f2fs: don't track newly allocated nat entry in list
f2fs: fix to avoid panic when encountering corrupt node
f2fs: fix to show injection rate in ->show_options
f2fs: fix incorrect document of batched_trim_sections
f2fs: fix wrong error number of fill_super
f2fs: fix to document fault injection option and sysfs file
f2fs: clean up sysfs codes
f2fs: move sysfs code from super.c to fs/f2fs/sysfs.c
f2fs: set CP_TRIMMED_FLAG correctly
f2fs: measure inode.i_blocks as generic filesystem
f2fs: introduce reserved_blocks in sysfs
f2fs: stop gc/discard thread in prior during umount
f2fs: introduce __check_sit_bitmap
f2fs: skip ->writepages for {mete,node}_inode during recovery
Revert "f2fs: fix to clean previous mount option when remount_fs"
f2fs: don't count inode block in in-memory inode.i_blocks
f2fs: use spin_{,un}lock_irq{save,restore}
f2fs: support plain user/group quota

Christophe JAILLET (1):
f2fs: Fix a return value in case of error in 'f2fs_fill_super'

Damien Le Moal (1):
f2fs: Do not issue small discards in LFS mode

Eric Biggers (3):
f2fs: don't bother checking for encryption key in ->mmap()
f2fs: don't bother checking for encryption key in ->write_iter()
f2fs: require key for truncate(2) of encrypted file

Fan Li (1):
f2fs: simplify the way of calulating next nat address

Hou Pengyang (1):
f2fs: declare load_free_nid_bitmap static

Jaegeuk Kim (13):
f2fs: load inode's flag from disk
f2fs: use f2fs_submit_page_bio for ra_meta_pages
f2fs: remove unnecessary read cases in merged IO flow
f2fs: use fio instead of multiple parameters
f2fs: split bio cache
f2fs: avoid f2fs_lock_op for IPU writes
f2fs: try to freeze in gc and discard threads
f2fs: remove false-positive bug_on
f2fs: don't need to check encrypted inode for partial truncation
f2fs: add ioctl to do gc with target block address
f2fs: report # of free inodes more precisely
f2fs: relax migratepage for atomic written page
f2fs: avoid deadlock caused by lock order of page and lock_op

Jin Qian (2):
f2fs: sanity check checkpoint segno and blkoff
f2fs: sanity check size of nat and sit cache

Qiuyang Sun (1):
f2fs: dax: fix races between page faults and truncating pages

Sheng Yong (2):
f2fs: do not set LOST_PINO for newly created dir
f2fs: do not set LOST_PINO for renamed dir

Tiezhu Yang (1):
f2fs: use proper variable name

Weichao Guo (1):
f2fs: make sure f2fs_gc returns consistent errno

Yunlei He (4):
f2fs: add a new function get_ssr_cost
f2fs: fix a bug caused by NULL extent tree
f2fs: combine huge num of discard rb tree consistence checks
f2fs: fix a panic caused by NULL flush_cmd_control

Yunlong Song (1):
f2fs: avoid redundant f2fs_flush after remount

Zhang Shengju (1):
f2fs: remove the unnecessary cast for PTR_ERR

Documentation/ABI/testing/sysfs-fs-f2fs | 20 +-
Documentation/filesystems/f2fs.txt | 4 +
fs/f2fs/Makefile | 2 +-
fs/f2fs/acl.c | 2 +-
fs/f2fs/checkpoint.c | 33 +-
fs/f2fs/data.c | 215 ++++++----
fs/f2fs/dir.c | 3 +-
fs/f2fs/extent_cache.c | 12 +-
fs/f2fs/f2fs.h | 201 ++++++---
fs/f2fs/file.c | 183 +++++++--
fs/f2fs/gc.c | 40 +-
fs/f2fs/inline.c | 22 +-
fs/f2fs/inode.c | 17 +-
fs/f2fs/namei.c | 71 +++-
fs/f2fs/node.c | 67 +--
fs/f2fs/node.h | 6 +-
fs/f2fs/segment.c | 236 +++++++----
fs/f2fs/segment.h | 4 +
fs/f2fs/super.c | 705 +++++++++++++++++---------------
fs/f2fs/sysfs.c | 364 +++++++++++++++++
include/trace/events/f2fs.h | 16 +-
21 files changed, 1559 insertions(+), 664 deletions(-)
create mode 100644 fs/f2fs/sysfs.c