lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<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

Powered by Openwall GNU/*/Linux Powered by OpenVZ