[GIT PULL] f2fs for 4.7-rc1

From: Jaegeuk Kim
Date: Sat May 21 2016 - 20:39:37 EST

Hi Linus,

In this round, as Ted pointed out, fscrypto allows one more key prefix given by
filesystem to resolve backward compatibility issue. Other than that, we could
fix several error handling flow by introducing fault injection facility. We've
also achieved performance improvement in some workloads as well as a bunch of
bug fixes.

Could you consider pulling the below patches?


The following changes since commit 806fdcce017dc98c4dbf8ed001750a0d7d2bb0af:

Merge branch 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip (2016-04-14 19:53:46 -0700)

are available in the git repository at:

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

for you to fetch changes up to 0f3311a8c266b9f4fae4e5cdfcd9a86970e2b9bd:

f2fs: fix to update dirty page count correctly (2016-05-20 14:55:41 -0700)

- fs-specific prefix for fscrypto
- fault injection facility
- expose validity bitmaps for user to be aware of fragmentation
- fallocate/rm/preallocation speed up
- use percpu counters

Bug fixes
- some inline_dentry/inline_data bugs
- error handling for atomic/volatile/orphan inodes
- recover broken superblock

Chao Yu (22):
f2fs: fix to convert inline directory correctly
MAINTAINERS: update my email address
f2fs: be aware of invalid filename length
f2fs: move node pages only in victim section during GC
f2fs: fix to clear private data in page
f2fs: fix to clear page private flag
f2fs: factor out fsync inode entry operations
f2fs: remove unneeded readahead in find_fsync_dnodes
f2fs: remove unneeded memset when updating xattr
f2fs: reuse get_extent_info
f2fs: shrink size of struct seg_entry
f2fs: fix incorrect mapping in ->bmap
f2fs: avoid panic when truncating to max filesize
f2fs: fix inode cache leak
f2fs: use mnt_{want,drop}_write_file in ioctl
f2fs: make atomic/volatile operation exclusive
f2fs: support in batch multi blocks preallocation
f2fs: support in batch fzero in dnode page
f2fs: fix deadlock when flush inline data
f2fs: fix i_current_depth during inline dentry conversion
f2fs: fix incorrect error path handling in f2fs_move_rehashed_dirents
f2fs: fix to update dirty page count correctly

Jaegeuk Kim (46):
f2fs: give RO message when recovering superblock
f2fs: recover superblock at RW remounts
f2fs: give -EINVAL for norecovery and rw mount
f2fs: treat as a normal umount when remounting ro
f2fs: show current mount status
f2fs: use PGP_LOCK to check its truncation
f2fs: add BUG_ON to avoid unnecessary flow
f2fs: fix dropping inmemory pages in a wrong time
f2fs: unset atomic/volatile flag in f2fs_release_file
f2fs: remove redundant condition check
f2fs: give -E2BIG for no space in xattr
f2fs: don't invalidate atomic page if successful
f2fs: flush dirty pages before starting atomic writes
f2fs: avoid needless lock for node pages when fsyncing a file
f2fs: avoid writing 0'th page in volatile writes
f2fs: split sync_node_pages with fsync_node_pages
f2fs: report unwritten status in fsync_node_pages
f2fs: set fsync mark only for the last dnode
f2fs: issue cache flush on direct IO
f2fs: introduce macros for proc entries
f2fs: add proc entry to show valid block bitmap
f2fs: introduce f2fs_kmalloc to wrap kmalloc
f2fs: use f2fs_grab_cache_page instead of grab_cache_page
f2fs: add mount option to select fault injection ratio
f2fs: inject kmalloc failure
f2fs: inject page allocation failures
f2fs: inject ENOSPC failures
f2fs: revisit error handling flows
f2fs: fix leak of orphan inode objects
f2fs: retry to truncate blocks in -ENOMEM case
f2fs: don't worry about inode leak in evict_inode
f2fs: remove an obsolete variable
fscrypto/f2fs: allow fs-specific key prefix for fs encryption
f2fs: fallocate data blocks in single locked node page
f2fs: read node blocks ahead when truncating blocks
f2fs: do not preallocate block unaligned to 4KB
f2fs: show # of orphan inodes
f2fs: avoid f2fs_bug_on during recovery
f2fs: manipulate dirty file inodes when DATA_FLUSH is set
f2fs: use bio count instead of F2FS_WRITEBACK page count
f2fs: use percpu_counter for page counters
f2fs: use percpu_counter for # of dirty pages in inode
f2fs: use percpu_counter for alloc_valid_block_count
f2fs: use percpu_counter for total_valid_inode_count
f2fs: avoid ENOSPC fault in the recovery process
f2fs: flush pending bios right away when error occurs

Sheng Yong (2):
f2fs: correct return value type of f2fs_fill_super
f2fs: add fault injection to sysfs

Tiezhu Yang (1):
f2fs: make exit_f2fs_fs more clear

Yunlei He (1):
f2fs: no need inc dirty pages under inode lock

Yunlong Song (1):
f2fs: fix to return 0 if err == -ENOENT in f2fs_readdir

fs/crypto/keyinfo.c | 120 +++++++++++------
fs/f2fs/Kconfig | 8 ++
fs/f2fs/acl.c | 4 +-
fs/f2fs/checkpoint.c | 67 +++++-----
fs/f2fs/data.c | 197 ++++++++++++++++++---------
fs/f2fs/debug.c | 25 ++--
fs/f2fs/dir.c | 128 +++++++++---------
fs/f2fs/extent_cache.c | 3 +-
fs/f2fs/f2fs.h | 197 +++++++++++++++++++--------
fs/f2fs/file.c | 309 +++++++++++++++++++++++++++++++------------
fs/f2fs/gc.c | 27 +---
fs/f2fs/inline.c | 111 ++++++++++++++--
fs/f2fs/inode.c | 66 ++++-----
fs/f2fs/node.c | 316 ++++++++++++++++++++++++++++++++++----------
fs/f2fs/recovery.c | 149 ++++++++++++---------
fs/f2fs/segment.c | 8 +-
fs/f2fs/segment.h | 9 +-
fs/f2fs/super.c | 288 ++++++++++++++++++++++++++++++++++------
fs/f2fs/xattr.c | 3 +-
include/linux/f2fs_fs.h | 2 +
include/linux/fscrypto.h | 1 +
include/trace/events/f2fs.h | 24 ++--
23 files changed, 1449 insertions(+), 615 deletions(-)