archive mirror
 help / color / mirror / Atom feed
From: "Darrick J. Wong" <>
To: Linus Torvalds <>
Subject: [GIT PULL] iomap: new code for 5.15
Date: Tue, 31 Aug 2021 10:01:47 -0700	[thread overview]
Message-ID: <20210831170147.GB9959@magnolia> (raw)

Hi Linus,

Please pull this new iomap code for 5.15-rc1.  The most notable
externally visible change for this cycle is the addition of support for
reads to inline tail fragments of files, which was requested by the
erofs developers; and a correction for a kernel memory corruption bug if
the sysadmin tries to activate a swapfile with more pages than the
swapfile header suggests.  We also now report writeback completion
errors to the file mapping correctly, instead of munging all errors into

Internally, the bulk of the changes are Christoph's patchset to reduce
the indirect function call count by a third to a half by converting
iomap iteration from a loop pattern to a generator/consumer pattern.
As an added bonus, fsdax no longer open-codes iomap apply loops.

The branch merges cleanly with upstream as of a few minutes ago and has
been soaking in for-next for a couple of weeks without complaints.
Please let me know if there are any problems.


The following changes since commit c500bee1c5b2f1d59b1081ac879d73268ab0ff17:

  Linux 5.14-rc4 (2021-08-01 17:04:17 -0700)

are available in the Git repository at:

  git:// tags/iomap-5.15-merge-4

for you to fetch changes up to 03b8df8d43ecc3c5724e6bfb80bc0b9ea2aa2612:

  iomap: standardize tracepoint formatting and storage (2021-08-26 09:18:53 -0700)

New code for 5.15:
 - Simplify the bio_end_page usage in the buffered IO code.
 - Support reading inline data at nonzero offsets for erofs.
 - Fix some typos and bad grammar.
 - Convert kmap_atomic usage in the inline data read path.
 - Add some extra inline data input checking.
 - Fix a memory corruption bug stemming from iomap_swapfile_activate
   trying to activate more pages than mm was expecting.
 - Pass errnos through the page writeback code so that writeback errors
   are reported correctly instead of being munged to EIO.
 - Replace iomap_apply with a open-coded iterator loops to reduce the
   number of indirect calls by a third to a half.
 - Refactor the fsdax code to use iomap iterators instead of the
   open-coded iomap_apply code that it had before.
 - Format file range iomap tracepoint data in hexadecimal and
   standardize the names used in the pretty-print string.

Andreas Gruenbacher (1):
      iomap: Fix some typos and bad grammar

Christoph Hellwig (30):
      iomap: simplify iomap_readpage_actor
      iomap: simplify iomap_add_to_ioend
      iomap: fix a trivial comment typo in trace.h
      iomap: remove the iomap arguments to ->page_{prepare,done}
      iomap: mark the iomap argument to iomap_sector const
      iomap: mark the iomap argument to iomap_inline_data const
      iomap: mark the iomap argument to iomap_inline_data_valid const
      fs: mark the iomap argument to __block_write_begin_int const
      fsdax: mark the iomap argument to dax_iomap_sector as const
      iomap: mark the iomap argument to iomap_read_inline_data const
      iomap: mark the iomap argument to iomap_read_page_sync const
      iomap: fix the iomap_readpage_actor return value for inline data
      iomap: add the new iomap_iter model
      iomap: switch readahead and readpage to use iomap_iter
      iomap: switch iomap_file_buffered_write to use iomap_iter
      iomap: switch iomap_file_unshare to use iomap_iter
      iomap: switch iomap_zero_range to use iomap_iter
      iomap: switch iomap_page_mkwrite to use iomap_iter
      iomap: switch __iomap_dio_rw to use iomap_iter
      iomap: switch iomap_fiemap to use iomap_iter
      iomap: switch iomap_bmap to use iomap_iter
      iomap: switch iomap_seek_hole to use iomap_iter
      iomap: switch iomap_seek_data to use iomap_iter
      iomap: switch iomap_swapfile_activate to use iomap_iter
      fsdax: switch dax_iomap_rw to use iomap_iter
      iomap: remove iomap_apply
      iomap: pass an iomap_iter to various buffered I/O helpers
      iomap: rework unshare flag
      fsdax: switch the fault handlers to use iomap_iter
      iomap: constify iomap_iter_srcmap

Darrick J. Wong (3):
      iomap: pass writeback errors to the mapping
      iomap: move loop control code to iter.c
      iomap: standardize tracepoint formatting and storage

Gao Xiang (1):
      iomap: support reading inline data from non-zero pos

Matthew Wilcox (Oracle) (3):
      iomap: Support inline data with block size < page size
      iomap: Use kmap_local_page instead of kmap_atomic
      iomap: Add another assertion to inline data handling

Shiyang Ruan (2):
      fsdax: factor out helpers to simplify the dax fault code
      fsdax: factor out a dax_fault_actor() helper

Xu Yu (1):
      mm/swap: consider max pages in iomap_swapfile_add_extent

 fs/btrfs/inode.c       |   5 +-
 fs/buffer.c            |   4 +-
 fs/dax.c               | 606 +++++++++++++++++++++++--------------------------
 fs/gfs2/bmap.c         |   5 +-
 fs/internal.h          |   4 +-
 fs/iomap/Makefile      |   2 +-
 fs/iomap/apply.c       |  99 --------
 fs/iomap/buffered-io.c | 508 ++++++++++++++++++++---------------------
 fs/iomap/direct-io.c   | 172 +++++++-------
 fs/iomap/fiemap.c      | 101 ++++-----
 fs/iomap/iter.c        |  80 +++++++
 fs/iomap/seek.c        |  98 ++++----
 fs/iomap/swapfile.c    |  44 ++--
 fs/iomap/trace.h       |  61 ++---
 include/linux/iomap.h  |  91 ++++++--
 15 files changed, 934 insertions(+), 946 deletions(-)
 delete mode 100644 fs/iomap/apply.c
 create mode 100644 fs/iomap/iter.c

             reply	other threads:[~2021-08-31 17:01 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-08-31 17:01 Darrick J. Wong [this message]
2021-08-31 18:19 ` [GIT PULL] iomap: new code for 5.15 pr-tracker-bot

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20210831170147.GB9959@magnolia \ \ \ \ \ \ \ \ \ \

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).