diff options
| author | Brian Foster <bfoster@redhat.com> | 2025-02-24 09:47:52 -0500 |
|---|---|---|
| committer | Christian Brauner <brauner@kernel.org> | 2025-02-26 09:42:36 +0100 |
| commit | 9ba439cbdcf2b14548a451d4f4e2bd274b1af490 (patch) | |
| tree | 2842e46d53cf121ed2ba397eb846028b24d2cfe0 | |
| parent | 80fce30584076affbf7d84917f57968e2b812dde (diff) | |
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 <bfoster@redhat.com>
Link: https://lore.kernel.org/r/20250224144757.237706-8-bfoster@redhat.com
Reviewed-by: "Darrick J. Wong" <djwong@kernel.org>
Signed-off-by: Christian Brauner <brauner@kernel.org>
| -rw-r--r-- | fs/dax.c | 8 |
1 files changed, 5 insertions, 3 deletions
@@ -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, |
