summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChas Williams <chas3@att.com>2018-09-06 11:09:10 -0400
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2018-09-15 09:43:01 +0200
commit77d1a435f8c635038198ff0b962bfde83dd88764 (patch)
treebfe8adbf39f08b039c75a2275419343770645ebd
parent4438e9db9574040e583574fd69da1ce0ff99cb86 (diff)
Fixes: Commit 2aa6d036b716 ("mm: numa: avoid waiting on freed migrated pages")
Commit 2aa6d036b716 ("mm: numa: avoid waiting on freed migrated pages") was an incomplete backport of the upstream commit. It is necessary to always reset page_nid before attempting any early exit. The original commit conflicted due to lack of commit 82b0f8c39a38 ("mm: join struct fault_env and vm_fault") in 4.9 so it wasn't a clean application, and the change must have just gotten lost in the noise. Signed-off-by: Chas Williams <chas3@att.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-rw-r--r--mm/huge_memory.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/mm/huge_memory.c b/mm/huge_memory.c
index 9efe88ef9702..e4c6c3edaf6a 100644
--- a/mm/huge_memory.c
+++ b/mm/huge_memory.c
@@ -1259,12 +1259,12 @@ int do_huge_pmd_numa_page(struct fault_env *fe, pmd_t pmd)
/* Migration could have started since the pmd_trans_migrating check */
if (!page_locked) {
+ page_nid = -1;
if (!get_page_unless_zero(page))
goto out_unlock;
spin_unlock(fe->ptl);
wait_on_page_locked(page);
put_page(page);
- page_nid = -1;
goto out;
}