Unverified Commit afadf562 authored by openeuler-ci-bot's avatar openeuler-ci-bot Committed by Gitee
Browse files

!15605 mm/hugetlb: fix surplus pages in dissolve_free_huge_page()

parents e3fdb6b6 0c052824
Loading
Loading
Loading
Loading
+4 −1
Original line number Diff line number Diff line
@@ -1823,6 +1823,7 @@ int dissolve_free_huge_page(struct page *page)
	if (!page_count(page)) {
		struct page *head = compound_head(page);
		struct hstate *h = page_hstate(head);
		bool adjust_surplus = false;
		if (h->free_huge_pages - h->resv_huge_pages == 0)
			goto out;

@@ -1853,7 +1854,9 @@ int dissolve_free_huge_page(struct page *page)
			SetPageHWPoison(page);
			ClearPageHWPoison(head);
		}
		remove_hugetlb_page(h, head, false);
		if (h->surplus_huge_pages_node[page_to_nid(head)])
			adjust_surplus = true;
		remove_hugetlb_page(h, head, adjust_surplus);
		h->max_huge_pages--;
		spin_unlock_irq(&hugetlb_lock);
		update_and_free_page(h, head);