Merge tag 'for-f2fs-4.7' of git://git.kernel.org/pub/scm/linux/kernel/git/jaegeuk...
authorLinus Torvalds <torvalds@linux-foundation.org>
Sun, 22 May 2016 01:25:28 +0000 (18:25 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Sun, 22 May 2016 01:25:28 +0000 (18:25 -0700)
Pull f2fs updates from Jaegeuk Kim:
 "In this round, as Ted pointed out, fscrypto allows one more key prefix
  given by filesystem to resolve backward compatibility issues.  Other
  than that, we've fixed several error handling cases by introducing
  a fault injection facility.  We've also achieved performance
  improvement in some workloads as well as a bunch of bug fixes.

  Summary:

  Enhancements:
   - 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"

* tag 'for-f2fs-4.7' of git://git.kernel.org/pub/scm/linux/kernel/git/jaegeuk/f2fs: (73 commits)
  f2fs: fix to update dirty page count correctly
  f2fs: flush pending bios right away when error occurs
  f2fs: avoid ENOSPC fault in the recovery process
  f2fs: make exit_f2fs_fs more clear
  f2fs: use percpu_counter for total_valid_inode_count
  f2fs: use percpu_counter for alloc_valid_block_count
  f2fs: use percpu_counter for # of dirty pages in inode
  f2fs: use percpu_counter for page counters
  f2fs: use bio count instead of F2FS_WRITEBACK page count
  f2fs: manipulate dirty file inodes when DATA_FLUSH is set
  f2fs: add fault injection to sysfs
  f2fs: no need inc dirty pages under inode lock
  f2fs: fix incorrect error path handling in f2fs_move_rehashed_dirents
  f2fs: fix i_current_depth during inline dentry conversion
  f2fs: correct return value type of f2fs_fill_super
  f2fs: fix deadlock when flush inline data
  f2fs: avoid f2fs_bug_on during recovery
  f2fs: show # of orphan inodes
  f2fs: support in batch fzero in dnode page
  f2fs: support in batch multi blocks preallocation
  ...

1  2 
MAINTAINERS
fs/f2fs/acl.c
fs/f2fs/data.c
fs/f2fs/dir.c
fs/f2fs/file.c
fs/f2fs/xattr.c

diff --cc MAINTAINERS
Simple merge
diff --cc fs/f2fs/acl.c
Simple merge
diff --cc fs/f2fs/data.c
@@@ -1682,9 -1753,13 +1753,13 @@@ static ssize_t f2fs_direct_IO(struct ki
  
        trace_f2fs_direct_IO_enter(inode, offset, count, iov_iter_rw(iter));
  
 -      err = blockdev_direct_IO(iocb, inode, iter, offset, get_data_block_dio);
 +      err = blockdev_direct_IO(iocb, inode, iter, get_data_block_dio);
-       if (err < 0 && iov_iter_rw(iter) == WRITE)
-               f2fs_write_failed(mapping, offset + count);
+       if (iov_iter_rw(iter) == WRITE) {
+               if (err > 0)
+                       set_inode_flag(F2FS_I(inode), FI_UPDATE_WRITE);
+               else if (err < 0)
+                       f2fs_write_failed(mapping, offset + count);
+       }
  
        trace_f2fs_direct_IO_exit(inode, offset, count, iov_iter_rw(iter), err);
  
diff --cc fs/f2fs/dir.c
Simple merge
diff --cc fs/f2fs/file.c
Simple merge
diff --cc fs/f2fs/xattr.c
Simple merge