From: Brian Foster Date: Mon, 24 Feb 2025 14:47:52 +0000 (-0500) Subject: dax: advance the iomap_iter on unshare range X-Git-Tag: v6.15-rc1~249^2~4^2~5 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=9ba439cbdcf2b14548a451d4f4e2bd274b1af490;p=thirdparty%2Fkernel%2Flinux.git dax: advance the iomap_iter on unshare range Advance the iter and return 0 or an error code for success or failure. Signed-off-by: Brian Foster Link: https://lore.kernel.org/r/20250224144757.237706-8-bfoster@redhat.com Reviewed-by: "Darrick J. Wong" Signed-off-by: Christian Brauner --- diff --git a/fs/dax.c b/fs/dax.c index f4d8c8c100867..c0fbab8c66f77 100644 --- a/fs/dax.c +++ b/fs/dax.c @@ -1266,11 +1266,11 @@ static s64 dax_unshare_iter(struct iomap_iter *iter) u64 copy_len = iomap_length(iter); u32 mod; int id = 0; - s64 ret = 0; + s64 ret = iomap_length(iter); void *daddr = NULL, *saddr = NULL; if (!iomap_want_unshare_iter(iter)) - return iomap_length(iter); + return iomap_iter_advance(iter, &ret); /* * Extend the file range to be aligned to fsblock/pagesize, because @@ -1307,7 +1307,9 @@ static s64 dax_unshare_iter(struct iomap_iter *iter) out_unlock: dax_read_unlock(id); - return dax_mem2blk_err(ret); + if (ret < 0) + return dax_mem2blk_err(ret); + return iomap_iter_advance(iter, &ret); } int dax_file_unshare(struct inode *inode, loff_t pos, loff_t len,