|
|
Subscribe / Log in / New account

iomap patches for zoned XFS v2

From:  Christoph Hellwig <hch-AT-lst.de>
To:  Christian Brauner <brauner-AT-kernel.org>
Subject:  iomap patches for zoned XFS v2
Date:  Thu, 06 Feb 2025 07:39:58 +0100
Message-ID:  <20250206064035.2323428-1-hch@lst.de>
Cc:  "Darrick J. Wong" <djwong-AT-kernel.org>, Carlos Maiolino <cem-AT-kernel.org>, linux-xfs-AT-vger.kernel.org, linux-fsdevel-AT-vger.kernel.org
Archive-link:  Article

Hi all,

this series contains the iomap prep work to support zoned XFS.

The biggest changes are:

 - an option to reuse the ioend code for direct writes in addition to the
   current use for buffered writeback, which allows the file system to
   track completions on a per-bio basis instead of the current end_io
   callback which operates on the entire I/O.
   Note that it might make sense to split the ioend code from
   buffered-io.c into its own file with this.  Let me know what you think
   of that and I can include it in the next version
 - change of the writeback_ops so that the submit_bio call can be done by
   the file system.  Note that btrfs will also need this eventually when
   it starts using iomap
 - helpers to split ioend to the zone append queue_limits that plug
   into the previous item above.
 - a new ANON_WRITE flags for writes that don't have a block number
   assigned to them at the iomap level, leaving the file system to do
   that work in the submission handler.  Note that btrfs wants something
   similar also for compressed I/O, which should be able to reuse this,
   maybe with minor tweaks.
 - passing private data to a few more helper

The XFS changes to use this will be posted to the xfs list only to not
spam fsdevel too much.

Changes since v1:
 - spelling fixes
 - more comments
 - add a new io_private member to struct iomap_ioend

Changes since RFC:
 - update Documentation/filesystems/iomap/
 - improve comments
 - make the iomap_split_ioend calling convention simpler and hopefully
   more cleasr
 - propagate bio_split errors
 - rename the flags argument to iomap_init_ioend
 - move more code to fs/iomap/ioend.c
 - refactor the ioend completion code a bit
 - replace the ZONE_APPEND flag with an ANON_WRITE flag



Copyright © 2025, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds