Hi Linus, Could you please consider this pull request? Thanks all the time, The following changes since commit fd2b2c57ec2020ae1b5e24717a876c71e31e5ab8: Merge tag 'scsi-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi (2017-07-25 20:10:10 -0700) are available in the git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/jaegeuk/f2fs.git tags/f2fs-for-4.14 for you to fetch changes up to e6c6de18f010d9a7d592f4044d2c30213cb3a7bc: f2fs: hurry up to issue discard after io interruption (2017-09-12 10:02:55 -0700) ---------------------------------------------------------------- for-f2fs-4.14 In this round, we've mostly tuned f2fs to provide better user experience for Android. Especially, we've worked on atomic write feature again with SQLite community in order to support it officially. And we added or modified several facilities to analyze and enhance IO behaviors. Major changes include: - add app/fs io stat - add inode checksum feature - support project/journalled quota - enhance atomic write with new ioctl() which exposes feature set - enhance background gc/discard/fstrim flows with new gc_urgent mode - add F2FS_IOC_FS{GET,SET}XATTR - fix some quota flows ---------------------------------------------------------------- Arvind Yadav (1): f2fs: constify super_operations Chao Yu (28): f2fs: spread struct f2fs_dentry_ptr for inline path f2fs: make background threads of f2fs being aware of freezing f2fs: make max inline size changeable f2fs: enhance on-disk inode structure scalability f2fs: record quota during dot{,dot} recovery f2fs: support project quota f2fs: support F2FS_IOC_FS{GET,SET}XATTR f2fs: introduce f2fs_statfs_project f2fs: support inode checksum f2fs: add app/fs io stat f2fs: avoid unneeded sync on quota file f2fs: fix potential overflow when adjusting GC cycle f2fs: support journalled quota f2fs: retry to revoke atomic commit in -ENOMEM case f2fs: add tracepoint for f2fs_gc f2fs: introduce discard_granularity sysfs entry f2fs: fix out-of-order execution in f2fs_issue_flush f2fs: clear FI_HOT_DATA correctly f2fs: trigger normal fsync for non-atomic_write file f2fs: fix to avoid race in between aio and gc f2fs: trigger fdatasync for non-atomic_write file f2fs: update i_flags correctly f2fs: remove unneeded parameter of change_curseg f2fs: avoid race in between atomic_read & atomic_inc f2fs: fix to wake up all sleeping flusher f2fs: detect dirty inode in evict_inode f2fs: fix to show correct discard_granularity in sysfs f2fs: hurry up to issue discard after io interruption Daeho Jeong (1): f2fs: clear radix tree dirty tag of pages whose dirty flag is cleared Ernesto A. Fernández (1): f2fs: preserve i_mode if __f2fs_set_acl() fails Jaegeuk Kim (22): f2fs: give a try to do atomic write in -ENOMEM case f2fs: don't give partially written atomic data from process crash f2fs: add ioctl to expose current features f2fs: avoid naming confusion of sysfs init f2fs: don't need to wait for node writes for atomic write f2fs: return wrong error number on f2fs_quota_write f2fs: expose features to sysfs entry f2fs: use printk_ratelimited for f2fs_msg f2fs: use IPU for cold files f2fs: introduce gc_urgent mode for background GC f2fs: let fill_super handle roll-forward errors f2fs: check hot_data for roll-forward recovery f2fs: issue discard commands if gc_urgent is set f2fs: return error when accessing insane flie offset f2fs: wake up discard_thread iff there is a candidate f2fs: don't need to update inode checksum for recovery f2fs: don't check inode's checksum if it was dirtied or writebacked f2fs: introduce f2fs_encrypted_file for clean-up f2fs: use generic terms used for encrypted block management f2fs: make get_lock_data_page to handle encrypted inode f2fs: better to wait for fstrim completion f2fs: speed up gc_urgent mode with SSR Qiuyang Sun (1): f2fs: merge equivalent flags F2FS_GET_BLOCK_[READ|DIO] Yunlei He (3): f2fs: remove unused input parameter f2fs: alloc new nids for xattr block in recovery f2fs: avoid race in between read xattr & write xattr Yunlong Song (6): f2fs: provide f2fs_balance_fs to __write_node_page f2fs: update cur_valid_map_mir together with cur_valid_map f2fs: do not change the valid_block value if cur_valid_map was wrongly set or cleared f2fs: fix the size value in __check_sit_bitmap f2fs: remove unused function overprovision_sections Revert "f2fs: add a new function get_ssr_cost" Documentation/ABI/testing/sysfs-fs-f2fs | 21 ++ Documentation/filesystems/f2fs.txt | 19 ++ fs/f2fs/acl.c | 5 +- fs/f2fs/checkpoint.c | 60 ++++- fs/f2fs/data.c | 177 +++++++------ fs/f2fs/dir.c | 7 + fs/f2fs/f2fs.h | 285 ++++++++++++++++++--- fs/f2fs/file.c | 360 ++++++++++++++++++++++---- fs/f2fs/gc.c | 115 ++++++--- fs/f2fs/gc.h | 27 +- fs/f2fs/inline.c | 142 ++++++----- fs/f2fs/inode.c | 132 +++++++++- fs/f2fs/namei.c | 43 ++++ fs/f2fs/node.c | 79 ++++-- fs/f2fs/recovery.c | 83 ++++-- fs/f2fs/segment.c | 292 ++++++++++++++++----- fs/f2fs/segment.h | 47 ++-- fs/f2fs/super.c | 433 +++++++++++++++++++++++++++++--- fs/f2fs/sysfs.c | 251 +++++++++++++++--- fs/f2fs/xattr.c | 8 +- include/linux/f2fs_fs.h | 40 ++- include/trace/events/f2fs.h | 113 ++++++++- 22 files changed, 2228 insertions(+), 511 deletions(-)