6.1-stable review patch. If anyone has any objections, please let me know.
------------------
From: Shiyang Ruan ruansy.fnst@fujitsu.com
commit 388bc034d91d480efa88abc5c8d6e6c8a878b1ab upstream.
The copy_mc_to_kernel() will return 0 if it executed successfully. Then the return value should be set to the length it copied.
[akpm@linux-foundation.org: don't mess up `ret', per Matthew] Link: https://lkml.kernel.org/r/1675341227-14-1-git-send-email-ruansy.fnst@fujitsu... Fixes: d984648e428b ("fsdax,xfs: port unshare to fsdax") Signed-off-by: Shiyang Ruan ruansy.fnst@fujitsu.com Cc: Darrick J. Wong djwong@kernel.org Cc: Alistair Popple apopple@nvidia.com Cc: Dan Williams dan.j.williams@intel.com Cc: Dave Chinner david@fromorbit.com Cc: Jason Gunthorpe jgg@nvidia.com Cc: John Hubbard jhubbard@nvidia.com Cc: Matthew Wilcox willy@infradead.org Signed-off-by: Andrew Morton akpm@linux-foundation.org Signed-off-by: Greg Kroah-Hartman gregkh@linuxfoundation.org --- fs/dax.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-)
--- a/fs/dax.c +++ b/fs/dax.c @@ -1247,8 +1247,9 @@ static s64 dax_unshare_iter(struct iomap 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: