aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorShiyang Ruan <[email protected]>2023-02-02 12:33:47 +0000
committerAndrew Morton <[email protected]>2023-02-03 17:52:24 -0800
commit388bc034d91d480efa88abc5c8d6e6c8a878b1ab (patch)
treef5caad36fbd06a9356764f6b1c366839084df939
parentaa1e6a932ca652a50a5df458399724a80459f521 (diff)
fsdax: dax_unshare_iter() should return a valid length
The copy_mc_to_kernel() will return 0 if it executed successfully. Then the return value should be set to the length it copied. [[email protected]: don't mess up `ret', per Matthew] Link: https://lkml.kernel.org/r/[email protected] Fixes: d984648e428b ("fsdax,xfs: port unshare to fsdax") Signed-off-by: Shiyang Ruan <[email protected]> Cc: Darrick J. Wong <[email protected]> Cc: Alistair Popple <[email protected]> Cc: Dan Williams <[email protected]> Cc: Dave Chinner <[email protected]> Cc: Jason Gunthorpe <[email protected]> Cc: John Hubbard <[email protected]> Cc: Matthew Wilcox <[email protected]> Signed-off-by: Andrew Morton <[email protected]>
-rw-r--r--fs/dax.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/fs/dax.c b/fs/dax.c
index c48a3a93ab29..3e457a16c7d1 100644
--- a/fs/dax.c
+++ b/fs/dax.c
@@ -1271,8 +1271,9 @@ static s64 dax_unshare_iter(struct iomap_iter *iter)
if (ret < 0)
goto out_unlock;
- ret = copy_mc_to_kernel(daddr, saddr, length);
- if (ret)
+ if (copy_mc_to_kernel(daddr, saddr, length) == 0)
+ ret = length;
+ else
ret = -EIO;
out_unlock: