X-Git-Url: http://git.osdn.net/view?a=blobdiff_plain;f=mm%2Fmempolicy.c;h=f940395667c82f7beacbb0ac65e08107f3fe5ddb;hb=6b970599e807ea95c653926d41b095a92fd381e2;hp=61aa9aedb7289e4cdda19a980af2f170d79902f2;hpb=75caf5940899a33165fb3d521492f3cd6b20c9a7;p=tomoyo%2Ftomoyo-test1.git diff --git a/mm/mempolicy.c b/mm/mempolicy.c index 61aa9aedb728..f940395667c8 100644 --- a/mm/mempolicy.c +++ b/mm/mempolicy.c @@ -600,7 +600,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)) /* @@ -1540,6 +1541,7 @@ SYSCALL_DEFINE4(set_mempolicy_home_node, unsigned long, start, unsigned long, le * the home node for vmas we already updated before. */ if (new->mode != MPOL_BIND && new->mode != MPOL_PREFERRED_MANY) { + mpol_put(new); err = -EOPNOTSUPP; break; }