mm/mempolicy.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/mm/mempolicy.c b/mm/mempolicy.c index 618ab125228b..f2d5aab84c49 100644 --- a/mm/mempolicy.c +++ b/mm/mempolicy.c @@ -2190,9 +2190,9 @@ int mpol_misplaced(struct page *page, struct vm_area_struct *vma, unsigned long case MPOL_PREFERRED: if (pol->flags & MPOL_F_LOCAL) - polnid = numa_node_id(); - else - polnid = pol->v.preferred_node; + goto local_node; + + polnid = pol->v.preferred_node; break; case MPOL_BIND: @@ -2218,6 +2218,7 @@ int mpol_misplaced(struct page *page, struct vm_area_struct *vma, unsigned long /* Migrate the page towards the node whose CPU is referencing it */ if (pol->flags & MPOL_F_MORON) { +local_node: polnid = thisnid; if (!should_numa_migrate_memory(current, page, curnid, thiscpu))