[GIT PULL] f2fs updates for v3.19

From: Jaegeuk Kim
Date: Tue Dec 09 2014 - 21:18:30 EST


Hi Linus,

This patch-set includes lots of bug fixes based on clean-ups and refactored
codes. And inline_dir was introduced and two minor mount options were added.

Please, pull the following patches.

Thank you,

The following changes since commit f4ca536f71ad69d9a974d0156d43b24b3f3112de:

Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/geert/linux-m68k (2014-11-03 14:09:33 -0800)

are available in the git repository at:

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

for you to fetch changes up to 635aee1fefef921ae4124b127fced62ea6008839:

f2fs: avoid to ra unneeded blocks in recover flow (2014-12-08 14:19:09 -0800)

----------------------------------------------------------------
f2fs updates for v3.19

This series includes the following enhancement with refactored flows.
o fix inmemory page operations
o fix wrong inline_data & inline_dir logics
o enhance memory and IO control under memory pressure
o consider preemption on radix_tree operation
o fix memory leaks and deadlocks

But also, there are a couple of new features:
o support inline_dir to store dentries inside inode page
o add -o fastboot to reduce booting time
o implement -o dirsync

And a lot of clean-ups and minor bug fixes as well.

----------------------------------------------------------------
Changman Lee (8):
f2fs: fix wrong data structure when create slab
f2fs: check dirty_nat_cnt before flushing nat entries in journal
f2fs: no more dirty_nat_entires when flushing
f2fs: cleanup if-statement of phase in gc_data_segment
f2fs: cleanup redundant macro
f2fs: more fast lookup for gc_inode list
f2fs: check if inode state is dirty at fsync
f2fs: cleanup path to need cp at fsync

Chao Yu (14):
f2fs: add infra struct and helper for inline dir
f2fs: add a new mount option for inline dir
f2fs: export dir operations for inline dir
f2fs: add key function to handle inline dir
f2fs: enable inline dir handling
f2fs: update f2fs documentation for inline dir support
f2fs: avoid unable to restart gc thread in remount
f2fs: remove unneeded check code with option in f2fs_remount
f2fs: introduce struct inode_management to wrap inner fields
f2fs: fix to return correct error number in f2fs_write_begin
f2fs: use atomic for counting inode with inline_{dir,inode} flag
f2fs: fix to enable readahead for SSA/CP blocks
f2fs: introduce is_valid_blkaddr to cleanup codes in ra_meta_pages
f2fs: avoid to ra unneeded blocks in recover flow

Gu Zheng (6):
f2fs: remove the seems unneeded argument 'type' from __get_victim
f2fs: remove the redundant function cond_clear_inode_flag
f2fs: introduce f2fs_change_bit to simplify the change bit logic
f2fs: set raw_super default to NULL to avoid compile warning
f2fs: rename f2fs_set/clear_bit to f2fs_test_and_set/clear_bit
f2fs: use current_sit_addr to replace the open code

Jaegeuk Kim (56):
f2fs: do not make dirty any inmemory pages
f2fs: invalidate inmemory page
f2fs: should truncate any allocated block for inline_data write
f2fs: fix race conditon on truncation with inline_data
f2fs: use highmem for directory pages
f2fs: avoid to allocate when inline_data was written
f2fs: fix to call f2fs_unlock_op
f2fs: avoid build warning
f2fs: avoid infinite loop at cp_error
f2fs: reuse room_for_filename for inline dentry operation
f2fs: reuse find_in_block code for find_in_inline_dir
f2fs: fix to wait correct block type
f2fs: avoid deadlock on init_inode_metadata
f2fs: add stat info for inline_dentry inodes
f2fs: fix counting inline_data inode numbers
f2fs: reuse core function in f2fs_readdir for inline_dentry
f2fs: should not truncate any inline_dentry
f2fs: introduce f2fs_dentry_ptr structure for code clean-up
f2fs: reuse make_empty_dir code for inline_dentry
f2fs: use kmap_atomic instead of kmap
f2fs: declare f2fs_convert_inline_dir as a static function
f2fs: call write_checkpoint under disabled gc
f2fs: flush_dcache_page for inline data
f2fs: do not discard data protected by the previous checkpoint
f2fs: revisit inline_data to avoid data races and potential bugs
f2fs: send discard commands in larger extent
f2fs: avoid race condition in handling wait_io
f2fs: remove unnecessary macro
f2fs: introduce -o fastboot for reducing booting time only
f2fs: disable roll-forward when active_logs = 2
f2fs: introduce the number of inode entries
f2fs: control the memory footprint used by ino entries
f2fs: write node pages if checkpoint is not doing
f2fs: do not skip any writes under memory pressure
f2fs: implement -o dirsync
f2fs: reduce the number of inline_data inode before clearing it
f2fs: fix deadlock to grab 0'th data page
f2fs: convert inline_data when i_size becomes large
f2fs: fix to call put_page at the error handling routine
f2fs: put the inode page when error was occurred
f2fs: submit bio for node blocks in the reclaim path
f2fs: write SSA pages under memory pressure
f2fs: call flush_dcache_page when the page was updated
f2fs: introduce f2fs_dentry_kunmap to clean up
f2fs: fix livelock calling f2fs_iget during f2fs_evict_inode
f2fs: fix deadlock during inline_data conversion
f2fs: make clean the page before writing
f2fs: fix to recover converted inline_data
f2fs: fix missing kmem_cache_free
f2fs: use rw_semaphore for nat entry lock
f2fs: call radix_tree_preload before radix_tree_insert
f2fs: do retry operations with cond_resched
f2fs: count inline_xx in do_read_inode
f2fs: set page private for inmemory pages for truncation
f2fs: release inmemory pages when the file was closed
f2fs: count the number of inmemory pages

Jan Kara (3):
f2fs: avoid returning uninitialized value to userspace from f2fs_trim_fs()
f2fs: fix possible data corruption in f2fs_write_begin()
f2fs: remove pointless bit testing in f2fs_delete_entry()

Markus Elfring (1):
f2fs: fix typos for the word "destroy" in jump labels

Documentation/filesystems/f2fs.txt | 7 +
fs/f2fs/acl.c | 148 +++++++++++-
fs/f2fs/acl.h | 5 +-
fs/f2fs/checkpoint.c | 186 ++++++++------
fs/f2fs/data.c | 166 ++++++-------
fs/f2fs/debug.c | 15 +-
fs/f2fs/dir.c | 308 +++++++++++++++---------
fs/f2fs/f2fs.h | 176 +++++++++++---
fs/f2fs/file.c | 212 ++++++++++------
fs/f2fs/gc.c | 89 +++----
fs/f2fs/gc.h | 5 +
fs/f2fs/inline.c | 482 +++++++++++++++++++++++++++++--------
fs/f2fs/inode.c | 44 +++-
fs/f2fs/namei.c | 58 +++--
fs/f2fs/node.c | 163 +++++++------
fs/f2fs/node.h | 8 +-
fs/f2fs/recovery.c | 14 +-
fs/f2fs/segment.c | 122 +++++++---
fs/f2fs/segment.h | 8 +-
fs/f2fs/super.c | 29 ++-
fs/f2fs/xattr.c | 6 +-
fs/f2fs/xattr.h | 6 +-
include/linux/f2fs_fs.h | 27 ++-
23 files changed, 1578 insertions(+), 706 deletions(-)

--
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/