tree 14d210cf61e2563d6085743bd324222a831e6a88
parent 052c220da392c4dcbc628852d04970447a315683
parent 214c2461a864a46b11856426b80dc7db453043c5
author Linus Torvalds <torvalds@linux-foundation.org> 1522980775 -0700
committer Linus Torvalds <torvalds@linux-foundation.org> 1522980775 -0700
mergetag object 214c2461a864a46b11856426b80dc7db453043c5
 type commit
 tag f2fs-for-4.17
 tagger Jaegeuk Kim <jaegeuk@kernel.org> 1522897543 -0700
 
 f2fs-for-4.17-rc1
 
 In this round, we've mainly focused on performance tuning and critical bug fixes
 occurred in low-end devices. Sheng Yong introduced lost_found feature to keep
 missing files during recovery instead of thrashing them. We're preparing coming
 fsverity implementation. And, we've got more features to communicate with users
 for better performance. In low-end devices, some memory-related issues were
 fixed, and subtle race condtions and corner cases were addressed as well.
 
 Enhancement:
  - large nat bitmaps for more free node ids
  - add three block allocation policies to pass down write hints given by user
  - expose extension list to user and introduce hot file extension
  - tune small devices seamlessly for low-end devices
  - set readdir_ra by default
  - give more resources under gc_urgent mode regarding to discard and cleaning
  - introduce fsync_mode to enforce posix or not
  - nowait aio support
  - add lost_found feature to keep dangling inodes
  - reserve bits for future fsverity feature
  - add test_dummy_encryption for FBE
 
 Bug fix:
  - don't use highmem for dentry pages
  - align memory boundary for bitops
  - truncate preallocated blocks in write errors
  - guarantee i_times on fsync call
  - clear CP_TRIMMED_FLAG correctly
  - prevent node chain loop during recovery
  - avoid data race between atomic write and background cleaning
  - avoid unnecessary selinux violation warnings on resgid option
  - GFP_NOFS to avoid deadlock in quota and read paths
  - fix f2fs_skip_inode_update to allow i_size recovery
 
 In addition to them, there are several minor bug fixes and clean-ups.
 -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCAAdFiEE00UqedjCtOrGVvQiQBSofoJIUNIFAlrFmaYACgkQQBSofoJI
 UNKaSw//RZraDQmODfDieyjGAd8y1NgGDju1jgk62QJUqe/G3jIKN/A39HU3I2Ak
 jLIotwZ8j1yNBUGbXMXZTY+6sRkQGJrcgawgvZ0gwWSeqTAiCi+AbqnNysTv8pDp
 Rh1iMCGvNKv1/vbFizJumcK2haH/KzX9Z7uDBjji4N7tTT1nUGVz+vmUO/qS6Xi0
 44BrEN1rhaF71JNaiQE0WuEc0GY2IU0W7l4IWirJeNqsK0BTVPnq1vxc8SsQQRmn
 Wdr4rUw2SRAynGMCQZlMW/sG0sxV0WMAE0xVE8WCFMXzHx2GNVakUgXMTZ2DgUKT
 JlgdsB5NQYrZJqSEAdNq3WclJpznlhOLHp8hjITxSRxhd2j7GH7xujUoGSsNiXDr
 n2s3Xg6wWMx+D4vsfXYJuZQKYqZUcBlPRgXa74/aXnsxRTLaormJtFNWkLqELIzR
 Qaw7XIhZoOyKkH7CPSWk0eYyQVi13l9QV70iyBfY4bcN2aLZLxTX2Axwws3ESOCt
 Nf0jIe3L4k7MSdoMR0K51rhCMlPWDuddnQSs9Vsw3w8U5pVph+BKG5RBUI9N4hPv
 U0gKJfj8LIaxhHTfborEHf+hjq/0sN0TBPFBsAtqvv1LBXkMeWEeo0wXtxSJC89b
 3xBRQ0p4Nox4fEHs36AZID2OMOV8iamiEqzP/o9ja0sMzEjnYmo=
 =Ligi
 -----END PGP SIGNATURE-----

Merge tag 'f2fs-for-4.17' of git://git.kernel.org/pub/scm/linux/kernel/git/jaegeuk/f2fs

Pull f2fs update from Jaegeuk Kim:
 "In this round, we've mainly focused on performance tuning and critical
  bug fixes occurred in low-end devices. Sheng Yong introduced
  lost_found feature to keep missing files during recovery instead of
  thrashing them. We're preparing coming fsverity implementation. And,
  we've got more features to communicate with users for better
  performance. In low-end devices, some memory-related issues were
  fixed, and subtle race condtions and corner cases were addressed as
  well.

  Enhancements:
   - large nat bitmaps for more free node ids
   - add three block allocation policies to pass down write hints given by user
   - expose extension list to user and introduce hot file extension
   - tune small devices seamlessly for low-end devices
   - set readdir_ra by default
   - give more resources under gc_urgent mode regarding to discard and cleaning
   - introduce fsync_mode to enforce posix or not
   - nowait aio support
   - add lost_found feature to keep dangling inodes
   - reserve bits for future fsverity feature
   - add test_dummy_encryption for FBE

  Bug fixes:
   - don't use highmem for dentry pages
   - align memory boundary for bitops
   - truncate preallocated blocks in write errors
   - guarantee i_times on fsync call
   - clear CP_TRIMMED_FLAG correctly
   - prevent node chain loop during recovery
   - avoid data race between atomic write and background cleaning
   - avoid unnecessary selinux violation warnings on resgid option
   - GFP_NOFS to avoid deadlock in quota and read paths
   - fix f2fs_skip_inode_update to allow i_size recovery

  In addition to the above, there are several minor bug fixes and clean-ups"

* tag 'f2fs-for-4.17' of git://git.kernel.org/pub/scm/linux/kernel/git/jaegeuk/f2fs: (50 commits)
  f2fs: remain written times to update inode during fsync
  f2fs: make assignment of t->dentry_bitmap more readable
  f2fs: truncate preallocated blocks in error case
  f2fs: fix a wrong condition in f2fs_skip_inode_update
  f2fs: reserve bits for fs-verity
  f2fs: Add a segment type check in inplace write
  f2fs: no need to initialize zero value for GFP_F2FS_ZERO
  f2fs: don't track new nat entry in nat set
  f2fs: clean up with F2FS_BLK_ALIGN
  f2fs: check blkaddr more accuratly before issue a bio
  f2fs: Set GF_NOFS in read_cache_page_gfp while doing f2fs_quota_read
  f2fs: introduce a new mount option test_dummy_encryption
  f2fs: introduce F2FS_FEATURE_LOST_FOUND feature
  f2fs: release locks before return in f2fs_ioc_gc_range()
  f2fs: align memory boundary for bitops
  f2fs: remove unneeded set_cold_node()
  f2fs: add nowait aio support
  f2fs: wrap all options with f2fs_sb_info.mount_opt
  f2fs: Don't overwrite all types of node to keep node chain
  f2fs: introduce mount option for fsync mode
  ...
