[GIT PULL] f2fs updates for v3.14

From: Jaegeuk Kim
Date: Wed Jan 22 2014 - 20:56:51 EST

Hi Linus,

This is a pull request on f2fs updates for v3.14.

In this round, a couple of sysfs entries were introduced to tune the
f2fs at runtime.
In addition, f2fs starts to support inline_data and improves the
read/write performance in some workloads by refactoring bio-related
This patch-set also includes a number of clean-ups and several bug

Thank you very much.

The following changes since commit

Linux 3.13-rc5 (2013-12-22 13:08:32 -0800)

are available in the git repository at:


for you to fetch changes up to bf39c00a9a7f3cdb5ce7d6695d9f044daf8f0b53:

f2fs: drop obsolete node page when it is truncated (2014-01-23
08:04:21 +0900)

f2fs updates for v3.14

This patch-set includes the following major enhancement patches.
o support inline_data
o refactor bio operations such as merge operations and rw type
o enhance the direct IO path
o enhance bio operations
o truncate a node page when it becomes obsolete
o add sysfs entries: small_discards, max_victim_search, and
o add a sysfs entry to control max_victim_search

The other bug fixes are as follows.
o fix a bug in truncate_partial_nodes
o avoid warnings during sparse and build process
o fix error handling flows
o fix potential bit overflows

And, there are a bunch of cleanups.

Changman Lee (7):
f2fs: introduce __find_rev_next(_zero)_bit
f2fs: improve searching speed of __next_free_blkoff
f2fs: simplify IS_DATASEG and IS_NODESEG macro
f2fs: send REQ_META or REQ_PRIO when reading meta area
f2fs: missing kmem_cache_destroy for discard_entry
f2fs: add delimiter to seperate name and value in debug phrase
f2fs: missing REQ_META and REQ_PRIO when

Chao Yu (20):
f2fs: use f2fs_put_page to release page for uniform style
f2fs: add a new function to support for merging contiguous read
f2fs: adds a tracepoint for submit_read_page
f2fs: adds a tracepoint for f2fs_submit_read_bio
f2fs: read contiguous sit entry pages by merging for mount
f2fs: remove unneeded code in punch_hole
f2fs: avoid to calculate incorrect max orphan number
f2fs: correct type of wait in struct bio_private
f2fs: use true and false for boolean variable
f2fs: check return value of f2fs_readpage in find_data_page
f2fs: convert recover_orphan_inodes to void
f2fs: readahead contiguous pages for restore_node_summary
f2fs: use inner macro GFP_F2FS_ZERO for simplification
f2fs: avoid unneeded page release for correct _count of page
f2fs: add unlikely() macro for compiler optimization
f2fs: update several comments
f2fs: avoid to set wrong pino of inode when rename dir
f2fs: check filename length in recover_dentry
f2fs: avoid to left uninitialized data in page when read inline
f2fs: avoid to read inline data except first page

Chris Fries (1):
f2fs: clean checkpatch warnings

Fan Li (1):
f2fs: merge pages with the same sync_mode flag

Gu Zheng (14):
f2fs: convert remove_inode_page to void
f2fs: convert dev_valid_block_count to void
f2fs: convert inc/dec_valid_node_count to inc/dec one count
f2fs: simplify write_orphan_inodes for better readable
f2fs: move the list_head initialization into the lock protection
f2fs: fix a potential out of range issue
f2fs: move all the bio initialization into __bio_alloc
f2fs: remove the rw_flag domain from f2fs_io_info
f2fs: convert max_orphans to a field of f2fs_sb_info
f2fs: move grabing orphan pages out of protection region
f2fs: move alloc new orphan node out of lock protection region
f2fs: use spinlock rather than mutex for better speed
f2fs: add help function META_MAPPING
f2fs: remove the orphan block page array

Huajun Li (6):
f2fs: add a new function: f2fs_reserve_block()
f2fs: add flags and helpers to support inline data
f2fs: add a new mount option: inline_data
f2fs: key functions to handle inline data
f2fs: handle inline data operations
f2fs: update f2fs Documentation

Jaegeuk Kim (42):
f2fs: add a slab cache entry for small discards
f2fs: add key functions for small discards
f2fs: add a sysfs entry to control max_discards
f2fs: introduce f2fs_issue_discard() to clean up
f2fs: add a tracepoint for f2fs_issue_discard
f2fs: clean up the do_submit_bio flow
f2fs: use sbi->write_mutex for write bios
f2fs: disable the extent cache ops on high fragmented files
f2fs: introduce a bio array for per-page write bios
f2fs: merge read IOs at ra_nat_pages()
f2fs: avoid lock debugging overhead
f2fs: add detailed information of bio types in the tracepoints
f2fs: remove unnecessary return value
f2fs: bug fix on bit overflow from 32bits to 64bits
f2fs: remove unnecessary condition checks
f2fs: remove the own bi_private allocation
f2fs: refactor bio-related operations
f2fs: add unlikely() macro for compiler more aggressively
f2fs: refactor bio->rw handling
f2fs: fix the location of tracepoint
f2fs: introduce sysfs entry to control in-place-update policy
f2fs: introduce a new direct_IO write path
f2fs: write dirty meta pages collectively
f2fs: add description about small_discards in document
f2fs: introduce F2FS_INODE macro to get f2fs_inode
f2fs: should put the dnode when NEW_ADDR is detected
f2fs: check the blocksize before calling generic_direct_IO path
f2fs: don't need to get f2fs_lock_op for the inline_data test
f2fs: convert inline_data for punch_hole
f2fs: call f2fs_put_page at the error case
f2fs: refactor f2fs_convert_inline_data
f2fs: add the number of inline_data files to status info
f2fs: add inline_data recovery routine
f2fs: handle errors correctly during f2fs_reserve_block
f2fs: improve write performance under frequent fsync calls
f2fs: add a sysfs entry to control max_victim_search
f2fs: update documents and a MAINTAINERS entry
f2fs: avoid f2fs_balance_fs call during pageout
f2fs: call mark_inode_dirty to flush dirty pages
f2fs: move a branch for code redability
f2fs: introduce NODE_MAPPING for code consistency
f2fs: drop obsolete node page when it is truncated

Younger Liu (2):
f2fs: remove debufs dir if debugfs_create_file() failed
f2fs: replace the debugfs_root with f2fs_debugfs_root

Yuan Zhong (1):
f2fs: remove the needless parameter of f2fs_wait_on_page_writeback

shifei10.ge (1):
f2fs: fix truncate_partial_nodes bug

Documentation/ABI/testing/sysfs-fs-f2fs | 31 ++
Documentation/filesystems/f2fs.txt | 24 ++
fs/f2fs/Makefile | 2 +-
fs/f2fs/checkpoint.c | 195 +++++-----
fs/f2fs/data.c | 621
fs/f2fs/debug.c | 53 ++-
fs/f2fs/dir.c | 47 +--
fs/f2fs/f2fs.h | 195 +++++++---
fs/f2fs/file.c | 84 ++---
fs/f2fs/gc.c | 22 +-
fs/f2fs/gc.h | 2 +-
fs/f2fs/inline.c | 222 ++++++++++++
fs/f2fs/inode.c | 23 +-
fs/f2fs/namei.c | 5 +
fs/f2fs/node.c | 272 ++++++++------
fs/f2fs/node.h | 8 +-
fs/f2fs/recovery.c | 49 ++-
fs/f2fs/segment.c | 584
fs/f2fs/segment.h | 81 +++--
fs/f2fs/super.c | 72 +++-
fs/f2fs/xattr.c | 2 +-
include/linux/f2fs_fs.h | 7 +
include/trace/events/f2fs.h | 107 ++++--
24 files changed, 1884 insertions(+), 825 deletions(-)
create mode 100644 fs/f2fs/inline.c

Jaegeuk Kim

To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/