fsdax: dax_unshare_iter() should return a valid length

Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=2192730

commit 388bc034d91d480efa88abc5c8d6e6c8a878b1ab
Author: Shiyang Ruan <ruansy.fnst@fujitsu.com>
Date:   Thu Feb 2 12:33:47 2023 +0000

    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.

    [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.com
    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: Bill O'Donnell <bodonnel@redhat.com>
This commit is contained in:
Bill O'Donnell 2023-06-06 13:41:09 -05:00
parent c62835db28
commit 82896d0bcd
1 changed files with 3 additions and 2 deletions

View File

@ -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: