diff options
Diffstat (limited to 'mm')
-rw-r--r-- | mm/hugetlb.c | 17 |
1 files changed, 7 insertions, 10 deletions
diff --git a/mm/hugetlb.c b/mm/hugetlb.c index c4a573b857bd..15fc7b000772 100644 --- a/mm/hugetlb.c +++ b/mm/hugetlb.c | |||
@@ -78,16 +78,13 @@ static struct page *dequeue_huge_page(struct vm_area_struct *vma, | |||
78 | for (z = zonelist->zones; *z; z++) { | 78 | for (z = zonelist->zones; *z; z++) { |
79 | nid = zone_to_nid(*z); | 79 | nid = zone_to_nid(*z); |
80 | if (cpuset_zone_allowed_softwall(*z, htlb_alloc_mask) && | 80 | if (cpuset_zone_allowed_softwall(*z, htlb_alloc_mask) && |
81 | !list_empty(&hugepage_freelists[nid])) | 81 | !list_empty(&hugepage_freelists[nid])) { |
82 | break; | 82 | page = list_entry(hugepage_freelists[nid].next, |
83 | } | 83 | struct page, lru); |
84 | 84 | list_del(&page->lru); | |
85 | if (*z) { | 85 | free_huge_pages--; |
86 | page = list_entry(hugepage_freelists[nid].next, | 86 | free_huge_pages_node[nid]--; |
87 | struct page, lru); | 87 | } |
88 | list_del(&page->lru); | ||
89 | free_huge_pages--; | ||
90 | free_huge_pages_node[nid]--; | ||
91 | } | 88 | } |
92 | return page; | 89 | return page; |
93 | } | 90 | } |