From: Andrey Albershteyn <aalbersh@kernel.org>
To: djwong@kernel.org, ebiggers@kernel.org, hch@lst.de,
Jens Axboe <axboe@kernel.dk>, Carlos Maiolino <cem@kernel.org>
Cc: Andrey Albershteyn <aalbersh@kernel.org>,
fsverity@lists.linux.dev, linux-fsdevel@vger.kernel.org,
linux-xfs@vger.kernel.org, linux-unionfs@vger.kernel.org,
linux-block@vger.kernel.org, linux-ext4@vger.kernel.org,
linux-f2fs-devel@lists.sourceforge.net,
linux-btrfs@vger.kernel.org, david@fromorbit.com,
Tal Zussman <tz2294@columbia.edu>
Subject: [PATCH v15 10/25] iomap: add a IOMAP_IOEND_INTEGRITY flag
Date: Fri, 14 Aug 2026 11:24:27 +0200 [thread overview]
Message-ID: <20260814092448.1818082-11-aalbersh@kernel.org> (raw)
In-Reply-To: <20260814092448.1818082-1-aalbersh@kernel.org>
From: Christoph Hellwig <hch@lst.de>
This will make it easier to share code for the various submit callback
provided by the file system to iomap.
Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: "Darrick J. Wong" <djwong@kernel.org>
---
fs/iomap/ioend.c | 2 +-
fs/xfs/xfs_aops.c | 5 +++--
fs/xfs/xfs_file.c | 5 +++--
include/linux/iomap.h | 11 ++++++++++-
4 files changed, 17 insertions(+), 6 deletions(-)
diff --git a/fs/iomap/ioend.c b/fs/iomap/ioend.c
index d71e7f5609c6..dece11397cd7 100644
--- a/fs/iomap/ioend.c
+++ b/fs/iomap/ioend.c
@@ -149,7 +149,7 @@ int iomap_ioend_writeback_submit(struct iomap_writepage_ctx *wpc, int error)
return error;
}
- if (wpc->iomap.flags & IOMAP_F_INTEGRITY)
+ if (ioend->io_flags & IOMAP_IOEND_INTEGRITY)
fs_bio_integrity_generate(&ioend->io_bio);
submit_bio(&ioend->io_bio);
return 0;
diff --git a/fs/xfs/xfs_aops.c b/fs/xfs/xfs_aops.c
index 6f21e207a0ad..a39dcd8c9a1c 100644
--- a/fs/xfs/xfs_aops.c
+++ b/fs/xfs/xfs_aops.c
@@ -491,7 +491,7 @@ xfs_zoned_writeback_submit(
bio_endio(&ioend->io_bio);
return error;
}
- if (wpc->iomap.flags & IOMAP_F_INTEGRITY)
+ if (ioend->io_flags & IOMAP_IOEND_INTEGRITY)
fs_bio_integrity_generate(&ioend->io_bio);
xfs_zone_alloc_and_submit(ioend, &XFS_ZWPC(wpc)->open_zone);
return 0;
@@ -581,7 +581,8 @@ xfs_bio_submit_read(
struct bio *bio = ctx->read_ctx;
/* defer read completions to the ioend workqueue */
- iomap_init_ioend(iter->inode, bio, ctx->read_ctx_file_offset, 0);
+ iomap_init_ioend(iter->inode, bio, ctx->read_ctx_file_offset,
+ iomap_ioend_flags(&iter->iomap));
iomap_bio_submit_read_endio(iter, ctx, xfs_end_bio);
}
diff --git a/fs/xfs/xfs_file.c b/fs/xfs/xfs_file.c
index ef29dba6e38e..6d989bd1696b 100644
--- a/fs/xfs/xfs_file.c
+++ b/fs/xfs/xfs_file.c
@@ -235,7 +235,8 @@ xfs_dio_read_bounce_submit_io(
struct bio *bio,
loff_t file_offset)
{
- iomap_init_ioend(iter->inode, bio, file_offset, IOMAP_IOEND_DIRECT);
+ iomap_init_ioend(iter->inode, bio, file_offset,
+ iomap_ioend_flags(&iter->iomap) | IOMAP_IOEND_DIRECT);
bio->bi_end_io = xfs_end_bio;
submit_bio(bio);
}
@@ -724,7 +725,7 @@ xfs_dio_zoned_submit_io(
bio->bi_end_io = xfs_end_bio;
ioend = iomap_init_ioend(iter->inode, bio, file_offset,
- IOMAP_IOEND_DIRECT);
+ iomap_ioend_flags(&iter->iomap) | IOMAP_IOEND_DIRECT);
xfs_zone_alloc_and_submit(ioend, &ac->open_zone);
}
diff --git a/include/linux/iomap.h b/include/linux/iomap.h
index 7328e30fb8ad..0959b97e641b 100644
--- a/include/linux/iomap.h
+++ b/include/linux/iomap.h
@@ -406,6 +406,12 @@ sector_t iomap_bmap(struct address_space *mapping, sector_t bno,
#define IOMAP_IOEND_DIRECT (1U << 3)
/* is DONTCACHE I/O */
#define IOMAP_IOEND_DONTCACHE (1U << 4)
+/* generate integrity (PI) information */
+#ifdef CONFIG_BLK_DEV_INTEGRITY
+#define IOMAP_IOEND_INTEGRITY (1U << 5)
+#else
+#define IOMAP_IOEND_INTEGRITY 0
+#endif /* CONFIG_BLK_DEV_INTEGRITY */
/*
* Flags that if set on either ioend prevent the merge of two ioends.
@@ -413,7 +419,7 @@ sector_t iomap_bmap(struct address_space *mapping, sector_t bno,
*/
#define IOMAP_IOEND_NOMERGE_FLAGS \
(IOMAP_IOEND_SHARED | IOMAP_IOEND_UNWRITTEN | IOMAP_IOEND_DIRECT | \
- IOMAP_IOEND_DONTCACHE)
+ IOMAP_IOEND_DONTCACHE | IOMAP_IOEND_INTEGRITY)
/* ioend flags directly implied by iomap flags */
static inline u16 iomap_ioend_flags(const struct iomap *iomap)
@@ -424,6 +430,9 @@ static inline u16 iomap_ioend_flags(const struct iomap *iomap)
flags |= IOMAP_IOEND_UNWRITTEN;
if (iomap->flags & IOMAP_F_SHARED)
flags |= IOMAP_IOEND_SHARED;
+ if (iomap->flags & IOMAP_F_INTEGRITY)
+ flags |= IOMAP_IOEND_INTEGRITY;
+
return flags;
}
--
2.54.0
WARNING: multiple messages have this Message-ID (diff)
From: Andrey Albershteyn via Linux-f2fs-devel <linux-f2fs-devel@lists.sourceforge.net>
To: djwong@kernel.org, ebiggers@kernel.org, hch@lst.de,
Jens Axboe <axboe@kernel.dk>, Carlos Maiolino <cem@kernel.org>
Cc: fsverity@lists.linux.dev, linux-xfs@vger.kernel.org,
Andrey Albershteyn <aalbersh@kernel.org>,
david@fromorbit.com, linux-unionfs@vger.kernel.org,
linux-f2fs-devel@lists.sourceforge.net,
linux-block@vger.kernel.org, linux-fsdevel@vger.kernel.org,
Tal Zussman <tz2294@columbia.edu>,
linux-ext4@vger.kernel.org, linux-btrfs@vger.kernel.org
Subject: [f2fs-dev] [PATCH v15 10/25] iomap: add a IOMAP_IOEND_INTEGRITY flag
Date: Fri, 14 Aug 2026 11:24:27 +0200 [thread overview]
Message-ID: <20260814092448.1818082-11-aalbersh@kernel.org> (raw)
In-Reply-To: <20260814092448.1818082-1-aalbersh@kernel.org>
From: Christoph Hellwig <hch@lst.de>
This will make it easier to share code for the various submit callback
provided by the file system to iomap.
Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: "Darrick J. Wong" <djwong@kernel.org>
---
fs/iomap/ioend.c | 2 +-
fs/xfs/xfs_aops.c | 5 +++--
fs/xfs/xfs_file.c | 5 +++--
include/linux/iomap.h | 11 ++++++++++-
4 files changed, 17 insertions(+), 6 deletions(-)
diff --git a/fs/iomap/ioend.c b/fs/iomap/ioend.c
index d71e7f5609c6..dece11397cd7 100644
--- a/fs/iomap/ioend.c
+++ b/fs/iomap/ioend.c
@@ -149,7 +149,7 @@ int iomap_ioend_writeback_submit(struct iomap_writepage_ctx *wpc, int error)
return error;
}
- if (wpc->iomap.flags & IOMAP_F_INTEGRITY)
+ if (ioend->io_flags & IOMAP_IOEND_INTEGRITY)
fs_bio_integrity_generate(&ioend->io_bio);
submit_bio(&ioend->io_bio);
return 0;
diff --git a/fs/xfs/xfs_aops.c b/fs/xfs/xfs_aops.c
index 6f21e207a0ad..a39dcd8c9a1c 100644
--- a/fs/xfs/xfs_aops.c
+++ b/fs/xfs/xfs_aops.c
@@ -491,7 +491,7 @@ xfs_zoned_writeback_submit(
bio_endio(&ioend->io_bio);
return error;
}
- if (wpc->iomap.flags & IOMAP_F_INTEGRITY)
+ if (ioend->io_flags & IOMAP_IOEND_INTEGRITY)
fs_bio_integrity_generate(&ioend->io_bio);
xfs_zone_alloc_and_submit(ioend, &XFS_ZWPC(wpc)->open_zone);
return 0;
@@ -581,7 +581,8 @@ xfs_bio_submit_read(
struct bio *bio = ctx->read_ctx;
/* defer read completions to the ioend workqueue */
- iomap_init_ioend(iter->inode, bio, ctx->read_ctx_file_offset, 0);
+ iomap_init_ioend(iter->inode, bio, ctx->read_ctx_file_offset,
+ iomap_ioend_flags(&iter->iomap));
iomap_bio_submit_read_endio(iter, ctx, xfs_end_bio);
}
diff --git a/fs/xfs/xfs_file.c b/fs/xfs/xfs_file.c
index ef29dba6e38e..6d989bd1696b 100644
--- a/fs/xfs/xfs_file.c
+++ b/fs/xfs/xfs_file.c
@@ -235,7 +235,8 @@ xfs_dio_read_bounce_submit_io(
struct bio *bio,
loff_t file_offset)
{
- iomap_init_ioend(iter->inode, bio, file_offset, IOMAP_IOEND_DIRECT);
+ iomap_init_ioend(iter->inode, bio, file_offset,
+ iomap_ioend_flags(&iter->iomap) | IOMAP_IOEND_DIRECT);
bio->bi_end_io = xfs_end_bio;
submit_bio(bio);
}
@@ -724,7 +725,7 @@ xfs_dio_zoned_submit_io(
bio->bi_end_io = xfs_end_bio;
ioend = iomap_init_ioend(iter->inode, bio, file_offset,
- IOMAP_IOEND_DIRECT);
+ iomap_ioend_flags(&iter->iomap) | IOMAP_IOEND_DIRECT);
xfs_zone_alloc_and_submit(ioend, &ac->open_zone);
}
diff --git a/include/linux/iomap.h b/include/linux/iomap.h
index 7328e30fb8ad..0959b97e641b 100644
--- a/include/linux/iomap.h
+++ b/include/linux/iomap.h
@@ -406,6 +406,12 @@ sector_t iomap_bmap(struct address_space *mapping, sector_t bno,
#define IOMAP_IOEND_DIRECT (1U << 3)
/* is DONTCACHE I/O */
#define IOMAP_IOEND_DONTCACHE (1U << 4)
+/* generate integrity (PI) information */
+#ifdef CONFIG_BLK_DEV_INTEGRITY
+#define IOMAP_IOEND_INTEGRITY (1U << 5)
+#else
+#define IOMAP_IOEND_INTEGRITY 0
+#endif /* CONFIG_BLK_DEV_INTEGRITY */
/*
* Flags that if set on either ioend prevent the merge of two ioends.
@@ -413,7 +419,7 @@ sector_t iomap_bmap(struct address_space *mapping, sector_t bno,
*/
#define IOMAP_IOEND_NOMERGE_FLAGS \
(IOMAP_IOEND_SHARED | IOMAP_IOEND_UNWRITTEN | IOMAP_IOEND_DIRECT | \
- IOMAP_IOEND_DONTCACHE)
+ IOMAP_IOEND_DONTCACHE | IOMAP_IOEND_INTEGRITY)
/* ioend flags directly implied by iomap flags */
static inline u16 iomap_ioend_flags(const struct iomap *iomap)
@@ -424,6 +430,9 @@ static inline u16 iomap_ioend_flags(const struct iomap *iomap)
flags |= IOMAP_IOEND_UNWRITTEN;
if (iomap->flags & IOMAP_F_SHARED)
flags |= IOMAP_IOEND_SHARED;
+ if (iomap->flags & IOMAP_F_INTEGRITY)
+ flags |= IOMAP_IOEND_INTEGRITY;
+
return flags;
}
--
2.54.0
_______________________________________________
Linux-f2fs-devel mailing list
Linux-f2fs-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel
next prev parent reply other threads:[~2026-08-14 9:26 UTC|newest]
Thread overview: 74+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-08-14 9:24 [PATCH v15 00/25] fs-verity support for XFS with post EOF merkle tree Andrey Albershteyn
2026-08-14 9:24 ` [f2fs-dev] " Andrey Albershteyn via Linux-f2fs-devel
2026-08-14 9:24 ` [PATCH v15 01/25] fsverity: report validation errors through fserror to fsnotify Andrey Albershteyn
2026-08-14 9:24 ` [f2fs-dev] " Andrey Albershteyn via Linux-f2fs-devel
2026-08-14 9:24 ` [PATCH v15 02/25] fsverity: expose ensure_fsverity_info() Andrey Albershteyn
2026-08-14 9:24 ` [f2fs-dev] " Andrey Albershteyn via Linux-f2fs-devel
2026-08-14 9:24 ` [PATCH v15 03/25] fsverity: pass digest size and hash of the all-zeroes block to ->write Andrey Albershteyn
2026-08-14 9:24 ` [f2fs-dev] " Andrey Albershteyn via Linux-f2fs-devel
2026-08-14 9:24 ` [PATCH v15 04/25] fsverity: hoist pagecache_read from f2fs/ext4 to fsverity Andrey Albershteyn
2026-08-14 9:24 ` [f2fs-dev] " Andrey Albershteyn via Linux-f2fs-devel
2026-08-14 9:24 ` [PATCH v15 05/25] fsverity: don't allow setting DAX file attribute on fsverity files Andrey Albershteyn
2026-08-14 9:24 ` [f2fs-dev] " Andrey Albershteyn via Linux-f2fs-devel
2026-08-14 9:24 ` [PATCH v15 06/25] fsverity: hoist statx reporting of fs-verity flag Andrey Albershteyn
2026-08-14 9:24 ` [f2fs-dev] " Andrey Albershteyn via Linux-f2fs-devel
2026-08-14 9:24 ` [PATCH v15 07/25] block: add task-context bio completion infrastructure Andrey Albershteyn
2026-08-14 9:24 ` [f2fs-dev] " Andrey Albershteyn via Linux-f2fs-devel
2026-08-14 9:24 ` [PATCH v15 08/25] block: don't delay bio task completions Andrey Albershteyn
2026-08-14 9:24 ` [f2fs-dev] " Andrey Albershteyn via Linux-f2fs-devel
2026-08-14 9:24 ` [PATCH v15 09/25] iomap: add a iomap_ioend_flags helper Andrey Albershteyn
2026-08-14 9:24 ` [f2fs-dev] " Andrey Albershteyn via Linux-f2fs-devel
2026-08-14 9:24 ` Andrey Albershteyn [this message]
2026-08-14 9:24 ` [f2fs-dev] [PATCH v15 10/25] iomap: add a IOMAP_IOEND_INTEGRITY flag Andrey Albershteyn via Linux-f2fs-devel
2026-08-14 9:24 ` [PATCH v15 11/25] xfs: use BIO_COMPLETE_IN_TASK for bounce buffered read I/Os Andrey Albershteyn
2026-08-14 9:24 ` [f2fs-dev] " Andrey Albershteyn via Linux-f2fs-devel
2026-08-14 9:24 ` [PATCH v15 12/25] xfs: introduce fsverity on-disk changes Andrey Albershteyn
2026-08-14 9:24 ` [f2fs-dev] " Andrey Albershteyn via Linux-f2fs-devel
2026-08-14 9:24 ` [PATCH v15 13/25] xfs: don't allow to enable DAX on fs-verity sealed inode Andrey Albershteyn
2026-08-14 9:24 ` [f2fs-dev] " Andrey Albershteyn via Linux-f2fs-devel
2026-08-14 9:24 ` [PATCH v15 14/25] xfs: disable direct read path for fs-verity files Andrey Albershteyn
2026-08-14 9:24 ` [f2fs-dev] " Andrey Albershteyn via Linux-f2fs-devel
2026-08-14 9:24 ` [PATCH v15 15/25] xfs: don't report dio_mem_align and dio_offset_align for fsverity files Andrey Albershteyn
2026-08-14 9:24 ` [f2fs-dev] " Andrey Albershteyn via Linux-f2fs-devel
2026-08-14 15:13 ` Darrick J. Wong
2026-08-14 15:13 ` [f2fs-dev] " Darrick J. Wong via Linux-f2fs-devel
2026-08-14 9:24 ` [PATCH v15 16/25] xfs: handle fsverity I/O in write/read path Andrey Albershteyn
2026-08-14 9:24 ` [f2fs-dev] " Andrey Albershteyn via Linux-f2fs-devel
2026-08-14 15:15 ` Darrick J. Wong
2026-08-14 15:15 ` [f2fs-dev] " Darrick J. Wong via Linux-f2fs-devel
2026-08-17 7:10 ` Christoph Hellwig
2026-08-17 7:10 ` [f2fs-dev] " Christoph Hellwig
2026-08-14 9:24 ` [PATCH v15 17/25] xfs: use read ioend for fsverity data verification Andrey Albershteyn
2026-08-14 9:24 ` [f2fs-dev] " Andrey Albershteyn via Linux-f2fs-devel
2026-08-17 7:20 ` Christoph Hellwig
2026-08-17 7:20 ` [f2fs-dev] " Christoph Hellwig
2026-08-14 9:24 ` [PATCH v15 18/25] xfs: make xfs_free_eofblocks() work with fsverity inodes Andrey Albershteyn
2026-08-14 9:24 ` [f2fs-dev] " Andrey Albershteyn via Linux-f2fs-devel
2026-08-14 15:19 ` Darrick J. Wong
2026-08-14 15:19 ` [f2fs-dev] " Darrick J. Wong via Linux-f2fs-devel
2026-08-17 7:09 ` Christoph Hellwig
2026-08-17 7:09 ` [f2fs-dev] " Christoph Hellwig
2026-08-14 9:24 ` [PATCH v15 19/25] xfs: add fs-verity support Andrey Albershteyn
2026-08-14 9:24 ` [f2fs-dev] " Andrey Albershteyn via Linux-f2fs-devel
2026-08-20 16:44 ` Darrick J. Wong via Linux-f2fs-devel
2026-08-20 16:44 ` Darrick J. Wong
2026-08-14 9:24 ` [PATCH v15 20/25] xfs: initialize fs-verity on file open Andrey Albershteyn
2026-08-14 9:24 ` [f2fs-dev] " Andrey Albershteyn via Linux-f2fs-devel
2026-08-14 9:24 ` [PATCH v15 21/25] xfs: add fs-verity ioctls Andrey Albershteyn
2026-08-14 9:24 ` [f2fs-dev] " Andrey Albershteyn via Linux-f2fs-devel
2026-08-14 9:24 ` [PATCH v15 22/25] xfs: advertise fs-verity being available on filesystem Andrey Albershteyn
2026-08-14 9:24 ` [f2fs-dev] " Andrey Albershteyn via Linux-f2fs-devel
2026-08-14 9:24 ` [f2fs-dev] [PATCH v15 23/25] xfs: check and repair the verity inode flag state Andrey Albershteyn via Linux-f2fs-devel
2026-08-14 9:24 ` Andrey Albershteyn
2026-08-14 9:24 ` [f2fs-dev] [PATCH v15 24/25] xfs: introduce health state for corrupted fsverity metadata Andrey Albershteyn via Linux-f2fs-devel
2026-08-14 9:24 ` Andrey Albershteyn
2026-08-14 9:24 ` [PATCH v15 25/25] xfs: enable ro-compat fs-verity flag Andrey Albershteyn
2026-08-14 9:24 ` [f2fs-dev] " Andrey Albershteyn via Linux-f2fs-devel
2026-08-17 7:02 ` [PATCH v15 00/25] fs-verity support for XFS with post EOF merkle tree Christoph Hellwig
2026-08-17 7:02 ` [f2fs-dev] " Christoph Hellwig
2026-08-17 15:37 ` Andrey Albershteyn
2026-08-17 15:37 ` [f2fs-dev] " Andrey Albershteyn via Linux-f2fs-devel
2026-08-17 16:11 ` Andrey Albershteyn via Linux-f2fs-devel
2026-08-17 16:11 ` Andrey Albershteyn
2026-08-19 5:49 ` Christoph Hellwig
2026-08-19 5:49 ` [f2fs-dev] " Christoph Hellwig
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:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20260814092448.1818082-11-aalbersh@kernel.org \
--to=aalbersh@kernel.org \
--cc=axboe@kernel.dk \
--cc=cem@kernel.org \
--cc=david@fromorbit.com \
--cc=djwong@kernel.org \
--cc=ebiggers@kernel.org \
--cc=fsverity@lists.linux.dev \
--cc=hch@lst.de \
--cc=linux-block@vger.kernel.org \
--cc=linux-btrfs@vger.kernel.org \
--cc=linux-ext4@vger.kernel.org \
--cc=linux-f2fs-devel@lists.sourceforge.net \
--cc=linux-fsdevel@vger.kernel.org \
--cc=linux-unionfs@vger.kernel.org \
--cc=linux-xfs@vger.kernel.org \
--cc=tz2294@columbia.edu \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* 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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.