[GIT PULL v2] iomap: new code for 5.9-rc1

From: Darrick J. Wong
Date: Thu Aug 06 2020 - 13:35:56 EST

Hi Linus,

Please pull these new changes to the iomap code for 5.9. The most
notable changes are:

1) iomap no longer invalidate the page cache when performing a direct
read, since doing so is unnecessary and the old directio code doesn't do
that either.

2) iomap embraced the use of returning ENOTBLK from a direct write to
trigger falling back to a buffered write since ext4 already did this and
btrfs wants it for their port.

3) iomap falls back to buffered writes if we're doing a direct write and
the page cache invalidation after the flush fails; this was necessary to
handle a corner case in the btrfs port.

4) Remove email virus scanner detritus that was accidentally included in
yesterday's pull request. Clearly I need(ed) to update my git branch
checker scripts. :(

The branch merges cleanly with your HEAD branch as of a few minutes ago.
Please let me know if there are any strange problems.


The following changes since commit dcb7fd82c75ee2d6e6f9d8cc71c52519ed52e258:

Linux 5.8-rc4 (2020-07-05 16:20:22 -0700)

are available in the Git repository at:

git://git.kernel.org/pub/scm/fs/xfs/xfs-linux.git tags/iomap-5.9-merge-5

for you to fetch changes up to 60263d5889e6dc5987dc51b801be4955ff2e4aa7:

iomap: fall back to buffered writes for invalidation failures (2020-08-05 09:24:16 -0700)

New code for 5.9:
- Make sure we call ->iomap_end with a failure code if ->iomap_begin
failed in any way; some filesystems need to try to undo things.
- Don't invalidate the page cache during direct reads since we already
sync'd the cache with disk.
- Make direct writes fall back to the page cache if the pre-write
cache invalidation fails. This avoids a cache coherency problem.
- Fix some idiotic virus scanner warning bs in the previous tag.

Andreas Gruenbacher (1):
iomap: Make sure iomap_end is called after iomap_begin

Christoph Hellwig (2):
xfs: use ENOTBLK for direct I/O to buffered I/O fallback
iomap: fall back to buffered writes for invalidation failures

Dave Chinner (1):
iomap: Only invalidate page cache pages on direct IO writes

fs/ext4/file.c | 2 ++
fs/gfs2/file.c | 3 ++-
fs/iomap/apply.c | 13 +++++++++----
fs/iomap/direct-io.c | 37 +++++++++++++++++++++----------------
fs/iomap/trace.h | 1 +
fs/xfs/xfs_file.c | 8 ++++----
fs/zonefs/super.c | 7 +++++--
7 files changed, 44 insertions(+), 27 deletions(-)