linux/drivers/staging
Linus Torvalds a4b7fd7d34 inode->i_version rework for v4.16
-----BEGIN PGP SIGNATURE-----
 
 iQIcBAABAgAGBQJabwjlAAoJEAAOaEEZVoIVeEEP/R84kZJjlZV/vNmFFvY46jM+
 0hpMHXRNym+nW1Du1CKNkesEUAY8ACAQIyzJh63Q72341QTDdz3+asHwPYRNOqdC
 PgryidPieojkNKQg+h7dmoKYlYh1xiCicvn66Q5PFb9B0lH36twekOK4X1qqJj8Z
 breRmRoFLka9looMSuYgwbErts023fmASalvGum6T0ZM/7F9hUj4O3OsQtKTLUNM
 VQ+gLJTQrUqrgzvWUwq3WTMa9YAaKP4oad8nsglNSpiVLG7WtURr5HokW9hAziqL
 k99Y+K2ni1wZJlNGJAyV7PyEG2ieI5Xn+LzM2RM+SndD1QHF2QXACmSTDYfL51k5
 G2RsKeTZvQPtX4qx9+vnCp/4oV6JduvCaq2Mt8SQb9nYZxKjs85TNLrARJv+85eQ
 zP0OTxlH1Gfu3j36n3cny4XemyMYYF4hCFYfRPqTGst37fgLBtfIfUSQ6jedoCK2
 Xcyb6ukGXMh6If/A7DSy91hvSSPrWSH7TPPsbfLy6o+wUOtpAGR4eXVlEuAiXrzc
 gnoAz85oIMUQae66LrdrPk1NyE59qOb24g/yU5gyRBSpi2+/aoboNCKaD73tgs/C
 XIMwGXLYmqkcud7IBQF0tHHiM+jsEkbSM4LUqRXSnqMdwNnS18Z4Q+JKqpdP0cii
 eRdenDvUfu8Gu1Y9vWBv
 =iihN
 -----END PGP SIGNATURE-----

Merge tag 'iversion-v4.16-1' of git://git.kernel.org/pub/scm/linux/kernel/git/jlayton/linux

Pull inode->i_version rework from Jeff Layton:
 "This pile of patches is a rework of the inode->i_version field. We
  have traditionally incremented that field on every inode data or
  metadata change. Typically this increment needs to be logged on disk
  even when nothing else has changed, which is rather expensive.

  It turns out though that none of the consumers of that field actually
  require this behavior. The only real requirement for all of them is
  that it be different iff the inode has changed since the last time the
  field was checked.

  Given that, we can optimize away most of the i_version increments and
  avoid dirtying inode metadata when the only change is to the i_version
  and no one is querying it. Queries of the i_version field are rather
  rare, so we can help write performance under many common workloads.

  This patch series converts existing accesses of the i_version field to
  a new API, and then converts all of the in-kernel filesystems to use
  it. The last patch in the series then converts the backend
  implementation to a scheme that optimizes away a large portion of the
  metadata updates when no one is looking at it.

  In my own testing this series significantly helps performance with
  small I/O sizes. I also got this email for Christmas this year from
  the kernel test robot (a 244% r/w bandwidth improvement with XFS over
  DAX, with 4k writes):

    https://lkml.org/lkml/2017/12/25/8

  A few of the earlier patches in this pile are also flowing to you via
  other trees (mm, integrity, and nfsd trees in particular)".

* tag 'iversion-v4.16-1' of git://git.kernel.org/pub/scm/linux/kernel/git/jlayton/linux: (22 commits)
  fs: handle inode->i_version more efficiently
  btrfs: only dirty the inode in btrfs_update_time if something was changed
  xfs: avoid setting XFS_ILOG_CORE if i_version doesn't need incrementing
  fs: only set S_VERSION when updating times if necessary
  IMA: switch IMA over to new i_version API
  xfs: convert to new i_version API
  ufs: use new i_version API
  ocfs2: convert to new i_version API
  nfsd: convert to new i_version API
  nfs: convert to new i_version API
  ext4: convert to new i_version API
  ext2: convert to new i_version API
  exofs: switch to new i_version API
  btrfs: convert to new i_version API
  afs: convert to new i_version API
  affs: convert to new i_version API
  fat: convert to new i_version API
  fs: don't take the i_lock in inode_inc_iversion
  fs: new API for handling inode->i_version
  ntfs: remove i_version handling
  ...
2018-01-29 13:33:53 -08:00
..
android staging: android: ashmem: fix a race condition in ASHMEM_SET_SIZE ioctl 2018-01-09 15:32:11 +01:00
board License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
ccree staging: ccree: Uninitialized return in ssi_ahash_import() 2017-12-06 15:49:26 +01:00
clocking-wizard
comedi staging: comedi: ni_atmio: fix license warning. 2017-11-28 14:36:45 +01:00
dgnc Staging/IIO patches for 4.15-rc1 2017-11-13 20:53:28 -08:00
emxx_udc
fbtft Staging/IIO patches for 4.15-rc1 2017-11-13 20:53:28 -08:00
fsl-dpaa2 staging: fsl-dpaa2/eth: Extra headroom in RX buffers 2017-11-03 16:19:27 +01:00
fsl-mc staging: fsl-mc/dpio: Fix incorrect comparison 2017-10-03 18:34:56 +02:00
fwserial Staging/IIO patches for 4.15-rc1 2017-11-13 20:53:28 -08:00
gdm724x Staging/IIO patches for 4.15-rc1 2017-11-13 20:53:28 -08:00
goldfish staging: goldfish: (Coding Style) Fixed parenthesis alignment. 2017-08-31 18:21:37 +02:00
greybus treewide: setup_timer() -> timer_setup() 2017-11-21 15:57:07 -08:00
gs_fpgaboot staging: gs_fpgaboot: pr_err() strings should end with newlines 2017-10-03 18:36:25 +02:00
iio Staging/IIO patches for 4.15-rc1 2017-11-13 20:53:28 -08:00
irda treewide: Remove TIMER_FUNC_TYPE and TIMER_DATA_TYPE casts 2017-11-21 16:35:54 -08:00
ks7010 Staging/IIO patches for 4.15-rc1 2017-11-13 20:53:28 -08:00
lustre inode->i_version rework for v4.16 2018-01-29 13:33:53 -08:00
media media: atomisp: stop producing hundreds of kernel-doc warnings 2017-11-30 04:18:38 -05:00
most treewide: setup_timer() -> timer_setup() 2017-11-21 15:57:07 -08:00
mt29f_spinand mtd: nand: force drivers to explicitly send READ/PROG commands 2017-12-14 13:34:17 +01:00
netlogic staging: net: netlogic: Fix alignment issue 2017-10-18 16:17:14 +02:00
nvec License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
octeon
octeon-usb staging: octeon-usb: use __delay() instead of cvmx_wait() 2017-11-28 14:36:46 +01:00
olpc_dcon License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
pi433 staging: pi433: Fixes issue with bit shift in rf69_get_modulation 2017-12-06 15:49:26 +01:00
rtl8188eu staging: rtl8188eu: Fix incorrect response to SIOCGIWESSID 2017-11-28 14:36:45 +01:00
rtl8192e Staging/IIO patches for 4.15-rc1 2017-11-13 20:53:28 -08:00
rtl8192u treewide: setup_timer() -> timer_setup() 2017-11-21 15:57:07 -08:00
rtl8712 treewide: setup_timer() -> timer_setup() 2017-11-21 15:57:07 -08:00
rtl8723bs Staging/IIO patches for 4.15-rc1 2017-11-13 20:53:28 -08:00
rtlwifi staging: rtl8822be: fix wrong dma unmap len 2017-11-03 14:49:08 +01:00
rts5208 Staging/IIO patches for 4.15-rc1 2017-11-13 20:53:28 -08:00
skein License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
sm750fb Staging/IIO patches for 4.15-rc1 2017-11-13 20:53:28 -08:00
speakup treewide: Switch DEFINE_TIMER callbacks to struct timer_list * 2017-11-21 15:57:05 -08:00
typec staging: typec: tcpci: mark expected switch fall-through in tcpci_to_typec_cc 2017-10-18 16:42:28 +02:00
unisys treewide: setup_timer() -> timer_setup() 2017-11-21 15:57:07 -08:00
vboxvideo main drm pull request for v4.15 2017-11-15 20:42:10 -08:00
vc04_services Merge branch 'work.get_user_pages_fast' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs 2017-11-17 12:38:51 -08:00
vme Staging/IIO patches for 4.15-rc1 2017-11-13 20:53:28 -08:00
vt6655 Staging/IIO patches for 4.15-rc1 2017-11-13 20:53:28 -08:00
vt6656 Staging/IIO patches for 4.15-rc1 2017-11-13 20:53:28 -08:00
wilc1000 treewide: setup_timer() -> timer_setup() 2017-11-21 15:57:07 -08:00
wlan-ng USB/PHY patches for 4.15-rc1 2017-11-13 21:14:07 -08:00
xgifb Staging/IIO patches for 4.15-rc1 2017-11-13 20:53:28 -08:00
Kconfig Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next 2017-09-06 14:45:08 -07:00
Makefile License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00