[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <20250322-vfs-iomap-a2f096e9d3fd@brauner>
Date: Sat, 22 Mar 2025 11:14:48 +0100
From: Christian Brauner <brauner@...nel.org>
To: Linus Torvalds <torvalds@...ux-foundation.org>
Cc: Christian Brauner <brauner@...nel.org>,
linux-fsdevel@...r.kernel.org,
linux-kernel@...r.kernel.org
Subject: [GIT PULL] vfs iomap
Hey Linus,
/* Summary */
This contains the iomap changes for this cycle:
- Allow the filesystem to submit the writeback bios.
- Allow the filsystem to track completions on a per-bio bases instead
of the entire I/O.
- Change writeback_ops so that ->submit_bio can be done by the filesystem.
- A new ANON_WRITE flag for writes that don't have a block number
assigned to them at the iomap level leaving the filesystem to do
that work in the submission handler.
- Incremental iterator advance
The folio_batch support for zero range where the filesystem provides a
batch of folios to process that might not be logically continguous
requires more flexibility than the current offset based iteration
currently offers.
Update all iomap operations to advance the iterator within the
operation and thus remove the need to advance from the core iomap
iterator.
- Make buffered writes work with RWF_DONTCACHE
If RWF_DONTCACHE is set for a write, mark the folios being written as
uncached. On writeback completion the pages will be dropped.
- Introduce infrastructure for large atomic writes
This will eventually be used by xfs and ext4.
/* Testing */
gcc version 14.2.0 (Debian 14.2.0-6)
Debian clang version 16.0.6 (27+b1)
No build failures or warnings were observed.
/* Conflicts */
Merge conflicts with mainline
=============================
No known conflicts.
Merge conflicts with other trees
================================
No known conflicts.
The following changes since commit 2014c95afecee3e76ca4a56956a936e23283f05b:
Linux 6.14-rc1 (2025-02-02 15:39:26 -0800)
are available in the Git repository at:
git@...olite.kernel.org:pub/scm/linux/kernel/git/vfs/vfs tags/vfs-6.15-rc1.iomap
for you to fetch changes up to c84042b32f275dee8e3f10cdd8973e2e879f1fc8:
Merge patch series "further iomap large atomic writes changes" (2025-03-20 15:16:08 +0100)
Please consider pulling these changes from the signed vfs-6.15-rc1.iomap tag.
Thanks!
Christian
----------------------------------------------------------------
vfs-6.15-rc1.iomap
----------------------------------------------------------------
Brian Foster (22):
iomap: factor out iomap length helper
iomap: split out iomap check and reset logic from iter advance
iomap: refactor iomap_iter() length check and tracepoint
iomap: lift error code check out of iomap_iter_advance()
iomap: lift iter termination logic from iomap_iter_advance()
iomap: export iomap_iter_advance() and return remaining length
iomap: support incremental iomap_iter advances
iomap: advance the iter directly on buffered writes
iomap: advance the iter directly on unshare range
iomap: advance the iter directly on zero range
iomap: advance the iter directly on buffered read
iomap: advance the iter on direct I/O
iomap: convert misc simple ops to incremental advance
dax: advance the iomap_iter in the read/write path
dax: push advance down into dax_iomap_iter() for read and write
dax: advance the iomap_iter on zero range
dax: advance the iomap_iter on unshare range
dax: advance the iomap_iter on dedupe range
dax: advance the iomap_iter on pte and pmd faults
iomap: remove unnecessary advance from iomap_iter()
iomap: rename iomap_iter processed field to status
iomap: introduce a full map advance helper
Christian Brauner (7):
Merge patch series "iomap: allow the file system to submit the writeback bios"
Merge patch series "iomap: incremental per-operation iter advance"
Merge patch series "iomap: incremental advance conversion -- phase 2"
Merge patch series "iomap: make buffered writes work with RWF_DONTCACHE"
Merge branch 'vfs-6.15.shared.iomap' of gitolite.kernel.org:pub/scm/linux/kernel/git/vfs/vfs
Merge patch series "iomap preliminaries for large atomic write for xfs with CoW"
Merge patch series "further iomap large atomic writes changes"
Christoph Hellwig (11):
iomap: allow the file system to submit the writeback bios
iomap: simplify io_flags and io_type in struct iomap_ioend
iomap: add a IOMAP_F_ANON_WRITE flag
iomap: split bios to zone append limits in the submission handlers
iomap: move common ioend code to ioend.c
iomap: factor out a iomap_dio_done helper
iomap: optionally use ioends for direct I/O
iomap: add a io_private field to struct iomap_ioend
iomap: pass private data to iomap_page_mkwrite
iomap: pass private data to iomap_zero_range
iomap: pass private data to iomap_truncate_page
Gao Xiang (1):
iomap: fix inline data on buffered read
Jens Axboe (2):
iomap: make buffered writes work with RWF_DONTCACHE
xfs: flag as supporting FOP_DONTCACHE
John Garry (5):
iomap: Rename IOMAP_ATOMIC -> IOMAP_ATOMIC_HW
iomap: Support SW-based atomic writes
iomap: inline iomap_dio_bio_opflags()
iomap: comment on atomic write checks in iomap_dio_bio_iter()
iomap: rework IOMAP atomic flags
Ritesh Harjani (IBM) (1):
iomap: Lift blocksize restriction on atomic writes
Documentation/filesystems/iomap/design.rst | 9 +
Documentation/filesystems/iomap/operations.rst | 42 ++-
fs/dax.c | 111 ++++----
fs/ext4/inode.c | 4 +
fs/gfs2/bmap.c | 3 +-
fs/iomap/Makefile | 1 +
fs/iomap/buffered-io.c | 356 +++++++++----------------
fs/iomap/direct-io.c | 279 ++++++++++---------
fs/iomap/fiemap.c | 21 +-
fs/iomap/internal.h | 10 +
fs/iomap/ioend.c | 216 +++++++++++++++
fs/iomap/iter.c | 97 ++++---
fs/iomap/seek.c | 16 +-
fs/iomap/swapfile.c | 7 +-
fs/iomap/trace.h | 8 +-
fs/xfs/xfs_aops.c | 25 +-
fs/xfs/xfs_file.c | 6 +-
fs/xfs/xfs_iomap.c | 8 +-
fs/zonefs/file.c | 2 +-
include/linux/iomap.h | 116 ++++++--
20 files changed, 816 insertions(+), 521 deletions(-)
create mode 100644 fs/iomap/internal.h
create mode 100644 fs/iomap/ioend.c
Powered by blists - more mailing lists