diff --git a/mm/mempolicy.c b/mm/mempolicy.c index b0a3b0fa761a4d7d84701e98ee527e7f301d98b3..f83491d21656d553f19d1fab07127f05f58bc27e 100644 --- a/mm/mempolicy.c +++ b/mm/mempolicy.c @@ -662,7 +662,8 @@ static int queue_pages_hugetlb(pte_t *pte, unsigned long hmask, /* With MPOL_MF_MOVE, we migrate only unshared hugepage. */ if (flags & (MPOL_MF_MOVE_ALL) || - (flags & MPOL_MF_MOVE && page_mapcount(page) == 1)) { + (flags & MPOL_MF_MOVE && page_mapcount(page) == 1 && + !hugetlb_pmd_shared(pte))) { if (isolate_hugetlb(page, qp->pagelist) && (flags & MPOL_MF_STRICT)) /*