If we get here after successfully adding page to list, err would be the number of pages in the list. Current code has two problems: * on success, 0 is not returned * on error, the real error code is not returned Signed-off-by: Wei Yang <richardw.yang@xxxxxxxxxxxxxxx> --- mm/migrate.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mm/migrate.c b/mm/migrate.c index 557da996b936..c3ef70de5876 100644 --- a/mm/migrate.c +++ b/mm/migrate.c @@ -1677,7 +1677,7 @@ static int do_pages_move(struct mm_struct *mm, nodemask_t task_nodes, err1 = do_move_pages_to_node(mm, &pagelist, current_node); if (!err1) err1 = store_status(status, start, current_node, i - start); - if (!err) + if (err >= 0) err = err1; out: return err; -- 2.17.1