On Wed, Feb 19, 2025 at 12:50:42PM -0500, Brian Foster wrote: > DAX reads and writes flow through dax_iomap_iter(), which has one or > more subtleties in terms of how it processes a range vs. what is > specified in the iomap_iter. To keep things simple and remove the > dependency on iomap_iter() advances, convert a positive return from > dax_iomap_iter() to the new advance and status return semantics. The > advance can be pushed further down in future patches. > > Signed-off-by: Brian Foster <bfoster@xxxxxxxxxx> > Reviewed-by: Christoph Hellwig <hch@xxxxxx> Not sure why this and the next patch are split up but it's fsdax so meh. Reviewed-by: "Darrick J. Wong" <djwong@xxxxxxxxxx> --D > --- > fs/dax.c | 6 +++++- > 1 file changed, 5 insertions(+), 1 deletion(-) > > diff --git a/fs/dax.c b/fs/dax.c > index 21b47402b3dc..296f5aa18640 100644 > --- a/fs/dax.c > +++ b/fs/dax.c > @@ -1585,8 +1585,12 @@ dax_iomap_rw(struct kiocb *iocb, struct iov_iter *iter, > if (iocb->ki_flags & IOCB_NOWAIT) > iomi.flags |= IOMAP_NOWAIT; > > - while ((ret = iomap_iter(&iomi, ops)) > 0) > + while ((ret = iomap_iter(&iomi, ops)) > 0) { > iomi.processed = dax_iomap_iter(&iomi, iter); > + if (iomi.processed > 0) > + iomi.processed = iomap_iter_advance(&iomi, > + &iomi.processed); > + } > > done = iomi.pos - iocb->ki_pos; > iocb->ki_pos = iomi.pos; > -- > 2.48.1 > >