[GIT PULL] iomap: new code for 5.12-rc1
From: Darrick J. Wong
Date: Thu Feb 18 2021 - 22:42:38 EST
Hi Linus,
Please pull these new changes to the iomap code for 5.12. The big
change in this cycle is some new code to make it possible for XFS to try
unaligned directio overwrites without taking locks. If the block is
fully written and within EOF (i.e. doesn't require any further fs
intervention) then we can let the unlocked write proceed. If not, we
fall back to synchronizing direct writes.
Note that the btrfs developers have been working on supporting zoned
block devices, and their 5.12 pull request has a single iomap patch to
adjust directio writes to support REQ_OP_APPEND.
The branch merges cleanly with 5.11 and has been soaking in for-next for
quite a while now. Please let me know if there are any strange
problems. It's been a pretty quiet cycle, so I don't anticipate any
more iomap pulls other than whatever new bug fixes show up.
--D (whose pull requests are delayed by last weekend's wild ride :( )
The following changes since commit 19c329f6808995b142b3966301f217c831e7cf31:
Linux 5.11-rc4 (2021-01-17 16:37:05 -0800)
are available in the Git repository at:
git://git.kernel.org/pub/scm/fs/xfs/xfs-linux.git tags/iomap-5.12-merge-2
for you to fetch changes up to ed1128c2d0c87e5ff49c40f5529f06bc35f4251b:
xfs: reduce exclusive locking on unaligned dio (2021-02-01 09:47:19 -0800)
----------------------------------------------------------------
New code for 5.12:
- Adjust the final parameter of iomap_dio_rw.
- Add a new flag to request that iomap directio writes return EAGAIN if
the write is not a pure overwrite within EOF; this will be used to
reduce lock contention with unaligned direct writes on XFS.
- Amend XFS' directio code to eliminate exclusive locking for unaligned
direct writes if the circumstances permit
----------------------------------------------------------------
Christoph Hellwig (9):
iomap: rename the flags variable in __iomap_dio_rw
iomap: pass a flags argument to iomap_dio_rw
iomap: add a IOMAP_DIO_OVERWRITE_ONLY flag
xfs: factor out a xfs_ilock_iocb helper
xfs: make xfs_file_aio_write_checks IOCB_NOWAIT-aware
xfs: cleanup the read/write helper naming
xfs: remove the buffered I/O fallback assert
xfs: simplify the read/write tracepoints
xfs: improve the reflink_bounce_dio_write tracepoint
Dave Chinner (2):
xfs: split the unaligned DIO write code out
xfs: reduce exclusive locking on unaligned dio
fs/btrfs/file.c | 7 +-
fs/ext4/file.c | 5 +-
fs/gfs2/file.c | 7 +-
fs/iomap/direct-io.c | 26 ++--
fs/xfs/xfs_file.c | 351 ++++++++++++++++++++++++++++----------------------
fs/xfs/xfs_iomap.c | 29 +++--
fs/xfs/xfs_trace.h | 22 ++--
fs/zonefs/super.c | 4 +-
include/linux/iomap.h | 18 ++-
9 files changed, 269 insertions(+), 200 deletions(-)