From: Joanne Koong <joannelkoong@gmail.com>
To: Christian Brauner <brauner@kernel.org>,
hch@lst.de, "Darrick J . Wong" <djwong@kernel.org>,
linux-fsdevel@vger.kernel.org
Cc: changfengnan@bytedance.com, kbusch@kernel.org,
Matthew Wilcox <willy@infradead.org>, Jan Kara <jack@suse.cz>,
Jonathan Corbet <corbet@lwn.net>, David Sterba <dsterba@suse.com>,
Gao Xiang <xiang@kernel.org>, Namjae Jeon <linkinjeon@kernel.org>,
Theodore Ts'o <tytso@mit.edu>, Jaegeuk Kim <jaegeuk@kernel.org>,
Miklos Szeredi <miklos@szeredi.hu>,
Andreas Gruenbacher <agruenba@redhat.com>,
Mikulas Patocka <mikulas@artax.karlin.mff.cuni.cz>,
Hyunchul Lee <hyc.lee@gmail.com>,
Konstantin Komarov <almaz.alexandrovich@paragon-software.com>,
Carlos Maiolino <cem@kernel.org>,
Damien Le Moal <dlemoal@kernel.org>,
libaokun@linux.alibaba.com, bfoster@redhat.com,
linux-ext4@vger.kernel.org, linux-xfs@vger.kernel.org
Subject: [PATCH v5 09/22] ntfs: convert iomap ops to ->iomap_next()
Date: Wed, 29 Jul 2026 12:27:24 -0700 [thread overview]
Message-ID: <20260729192737.3190206-10-joannelkoong@gmail.com> (raw)
In-Reply-To: <20260729192737.3190206-1-joannelkoong@gmail.com>
Convert ntfs iomap_ops to the new ->iomap_next() callback. Each callback is
generated with the DEFINE_IOMAP_ITER_NEXT()/DEFINE_IOMAP_ITER_NEXT_END()
macros, which wrap the iomap_iter_next() helper to finish the previous
mapping if needed and produce the next one. No functional changes are
intended.
Acked-by: Namjae Jeon <linkinjeon@kernel.org>
Signed-off-by: Joanne Koong <joannelkoong@gmail.com>
---
fs/ntfs/iomap.c | 32 ++++++++++++++++++++++----------
1 file changed, 22 insertions(+), 10 deletions(-)
diff --git a/fs/ntfs/iomap.c b/fs/ntfs/iomap.c
index 52eecf5cb256..d0964ac840d9 100644
--- a/fs/ntfs/iomap.c
+++ b/fs/ntfs/iomap.c
@@ -277,8 +277,10 @@ static int ntfs_read_iomap_begin(struct inode *inode, loff_t offset, loff_t leng
srcmap, true);
}
+static DEFINE_IOMAP_ITER_NEXT(ntfs_read_iomap_next, ntfs_read_iomap_begin);
+
const struct iomap_ops ntfs_read_iomap_ops = {
- .iomap_begin = ntfs_read_iomap_begin,
+ .iomap_next = ntfs_read_iomap_next,
};
/*
@@ -329,13 +331,17 @@ static int ntfs_zero_read_iomap_end(struct inode *inode, loff_t pos, loff_t leng
return written;
}
+static DEFINE_IOMAP_ITER_NEXT_END(ntfs_zero_read_iomap_next,
+ ntfs_seek_iomap_begin, ntfs_zero_read_iomap_end);
+
static const struct iomap_ops ntfs_zero_read_iomap_ops = {
- .iomap_begin = ntfs_seek_iomap_begin,
- .iomap_end = ntfs_zero_read_iomap_end,
+ .iomap_next = ntfs_zero_read_iomap_next,
};
+static DEFINE_IOMAP_ITER_NEXT(ntfs_seek_iomap_next, ntfs_seek_iomap_begin);
+
const struct iomap_ops ntfs_seek_iomap_ops = {
- .iomap_begin = ntfs_seek_iomap_begin,
+ .iomap_next = ntfs_seek_iomap_next,
};
int ntfs_dio_zero_range(struct inode *inode, loff_t offset, loff_t length)
@@ -764,9 +770,11 @@ static int ntfs_write_iomap_end(struct inode *inode, loff_t pos, loff_t length,
return written;
}
+static DEFINE_IOMAP_ITER_NEXT_END(ntfs_write_iomap_next,
+ ntfs_write_iomap_begin, ntfs_write_iomap_end);
+
const struct iomap_ops ntfs_write_iomap_ops = {
- .iomap_begin = ntfs_write_iomap_begin,
- .iomap_end = ntfs_write_iomap_end,
+ .iomap_next = ntfs_write_iomap_next,
};
static int ntfs_page_mkwrite_iomap_begin(struct inode *inode, loff_t offset,
@@ -777,9 +785,11 @@ static int ntfs_page_mkwrite_iomap_begin(struct inode *inode, loff_t offset,
NTFS_IOMAP_FLAGS_MKWRITE);
}
+static DEFINE_IOMAP_ITER_NEXT_END(ntfs_page_mkwrite_iomap_next,
+ ntfs_page_mkwrite_iomap_begin, ntfs_write_iomap_end);
+
const struct iomap_ops ntfs_page_mkwrite_iomap_ops = {
- .iomap_begin = ntfs_page_mkwrite_iomap_begin,
- .iomap_end = ntfs_write_iomap_end,
+ .iomap_next = ntfs_page_mkwrite_iomap_next,
};
static int ntfs_dio_iomap_begin(struct inode *inode, loff_t offset,
@@ -790,9 +800,11 @@ static int ntfs_dio_iomap_begin(struct inode *inode, loff_t offset,
NTFS_IOMAP_FLAGS_DIO);
}
+static DEFINE_IOMAP_ITER_NEXT_END(ntfs_dio_iomap_next,
+ ntfs_dio_iomap_begin, ntfs_write_iomap_end);
+
const struct iomap_ops ntfs_dio_iomap_ops = {
- .iomap_begin = ntfs_dio_iomap_begin,
- .iomap_end = ntfs_write_iomap_end,
+ .iomap_next = ntfs_dio_iomap_next,
};
static ssize_t ntfs_writeback_range(struct iomap_writepage_ctx *wpc,
--
2.52.0
next prev parent reply other threads:[~2026-07-29 19:30 UTC|newest]
Thread overview: 27+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-07-29 19:27 [PATCH v5 00/22] iomap: convert to in-iter iomap_next() model Joanne Koong
2026-07-29 19:27 ` [PATCH v5 01/22] iomap: release the folio batch on iomap callback failures Joanne Koong
2026-07-29 20:53 ` Darrick J. Wong
2026-07-30 7:29 ` Christoph Hellwig
2026-07-29 19:27 ` [PATCH v5 02/22] iomap: split iomap_iter() logic into iomap_iter_next() Joanne Koong
2026-07-29 19:27 ` [PATCH v5 03/22] iomap: decouple simple direct I/O reads from iomap_dio_rw Joanne Koong
2026-07-29 19:27 ` [PATCH v5 04/22] iomap: use GFP_NOWAIT when application for iomap_dio_simple allocations Joanne Koong
2026-07-29 19:27 ` [PATCH v5 05/22] iomap: add ->iomap_next() Joanne Koong
2026-07-29 19:27 ` [PATCH v5 06/22] xfs: convert iomap ops to ->iomap_next() Joanne Koong
2026-07-29 19:27 ` [PATCH v5 07/22] btrfs: " Joanne Koong
2026-07-29 19:27 ` [PATCH v5 08/22] ntfs3: " Joanne Koong
2026-07-29 19:27 ` Joanne Koong [this message]
2026-07-29 19:27 ` [PATCH v5 10/22] ext4: " Joanne Koong
2026-07-29 19:27 ` [PATCH v5 11/22] erofs: " Joanne Koong
2026-07-29 19:27 ` [PATCH v5 12/22] zonefs: " Joanne Koong
2026-07-29 19:27 ` [PATCH v5 13/22] ext2: " Joanne Koong
2026-07-29 19:27 ` [PATCH v5 14/22] block: " Joanne Koong
2026-07-29 19:27 ` [PATCH v5 15/22] f2fs: " Joanne Koong
2026-07-29 19:27 ` [PATCH v5 16/22] gfs2: " Joanne Koong
2026-07-29 19:27 ` [PATCH v5 17/22] hpfs: " Joanne Koong
2026-07-29 19:27 ` [PATCH v5 18/22] fuse: " Joanne Koong
2026-07-29 19:27 ` [PATCH v5 19/22] exfat: " Joanne Koong
2026-07-29 19:27 ` [PATCH v5 20/22] iomap: remove ->iomap_begin()/->iomap_end() legacy path Joanne Koong
2026-07-29 19:27 ` [PATCH v5 21/22] iomap: pass iomap_iter_next_fn directly instead of struct iomap_ops Joanne Koong
2026-07-29 19:27 ` [PATCH v5 22/22] Documentation: iomap: update docs to reflect iomap_iter_next model Joanne Koong
2026-07-30 10:33 ` (subset) [PATCH v5 00/22] iomap: convert to in-iter iomap_next() model Christian Brauner
2026-07-31 13:40 ` Christian Brauner
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=20260729192737.3190206-10-joannelkoong@gmail.com \
--to=joannelkoong@gmail.com \
--cc=agruenba@redhat.com \
--cc=almaz.alexandrovich@paragon-software.com \
--cc=bfoster@redhat.com \
--cc=brauner@kernel.org \
--cc=cem@kernel.org \
--cc=changfengnan@bytedance.com \
--cc=corbet@lwn.net \
--cc=djwong@kernel.org \
--cc=dlemoal@kernel.org \
--cc=dsterba@suse.com \
--cc=hch@lst.de \
--cc=hyc.lee@gmail.com \
--cc=jack@suse.cz \
--cc=jaegeuk@kernel.org \
--cc=kbusch@kernel.org \
--cc=libaokun@linux.alibaba.com \
--cc=linkinjeon@kernel.org \
--cc=linux-ext4@vger.kernel.org \
--cc=linux-fsdevel@vger.kernel.org \
--cc=linux-xfs@vger.kernel.org \
--cc=miklos@szeredi.hu \
--cc=mikulas@artax.karlin.mff.cuni.cz \
--cc=tytso@mit.edu \
--cc=willy@infradead.org \
--cc=xiang@kernel.org \
/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.