* [PATCH v2 14/18] fuse: convert iomap ops to ->iomap_next()
[not found] <20260701000949.1666714-1-joannelkoong@gmail.com>
@ 2026-07-01 0:09 ` Joanne Koong
0 siblings, 0 replies; only message in thread
From: Joanne Koong @ 2026-07-01 0:09 UTC (permalink / raw)
To: brauner, hch
Cc: djwong, willy, hsiangkao, linux-fsdevel, linux-xfs,
Miklos Szeredi, German Maglione, Vivek Goyal, Stefan Hajnoczi,
Eugenio Pérez, open list:FUSE FILESYSTEM [CORE], open list,
open list:VIRTIO FILE SYSTEM
Convert fuse iomap_ops to the new ->iomap_next() callback. This uses the
iomap_process() helper, which finishes the previous mapping if needed
and produces the next one. No functional changes are intended.
Signed-off-by: Joanne Koong <joannelkoong@gmail.com>
---
fs/fuse/dax.c | 10 ++++++++--
fs/fuse/file.c | 8 +++++++-
fs/fuse/virtio_fs.c | 2 +-
3 files changed, 16 insertions(+), 4 deletions(-)
diff --git a/fs/fuse/dax.c b/fs/fuse/dax.c
index 8b53625ac7ab..e8d8c9f5d728 100644
--- a/fs/fuse/dax.c
+++ b/fs/fuse/dax.c
@@ -653,9 +653,15 @@ static int fuse_iomap_end(struct inode *inode, loff_t pos, loff_t length,
return 0;
}
+static int fuse_iomap_next(const struct iomap_iter *iter, struct iomap *iomap,
+ struct iomap *srcmap)
+{
+ return iomap_process(iter, iomap, srcmap, fuse_iomap_begin,
+ fuse_iomap_end);
+}
+
static const struct iomap_ops fuse_iomap_ops = {
- .iomap_begin = fuse_iomap_begin,
- .iomap_end = fuse_iomap_end,
+ .iomap_next = fuse_iomap_next,
};
static void fuse_wait_dax_page(struct inode *inode)
diff --git a/fs/fuse/file.c b/fs/fuse/file.c
index e052a0d44dee..5c0d400629cc 100644
--- a/fs/fuse/file.c
+++ b/fs/fuse/file.c
@@ -890,8 +890,14 @@ static int fuse_iomap_begin(struct inode *inode, loff_t offset, loff_t length,
return 0;
}
+static int fuse_iomap_next(const struct iomap_iter *iter, struct iomap *iomap,
+ struct iomap *srcmap)
+{
+ return iomap_process(iter, iomap, srcmap, fuse_iomap_begin, NULL);
+}
+
static const struct iomap_ops fuse_iomap_ops = {
- .iomap_begin = fuse_iomap_begin,
+ .iomap_next = fuse_iomap_next,
};
struct fuse_fill_read_data {
diff --git a/fs/fuse/virtio_fs.c b/fs/fuse/virtio_fs.c
index df25d4faca41..84e699f88574 100644
--- a/fs/fuse/virtio_fs.c
+++ b/fs/fuse/virtio_fs.c
@@ -1024,7 +1024,7 @@ static void virtio_fs_cleanup_vqs(struct virtio_device *vdev)
}
/* Map a window offset to a page frame number. The window offset will have
- * been produced by .iomap_begin(), which maps a file offset to a window
+ * been produced by .iomap_next(), which maps a file offset to a window
* offset.
*/
static long virtio_fs_direct_access(struct dax_device *dax_dev, pgoff_t pgoff,
--
2.52.0
^ permalink raw reply related [flat|nested] only message in thread