hugetlb: update_and_free_page(): don't clear PG_reserved bit
authorLuiz Capitulino <[email protected]>
Wed, 4 Jun 2014 23:07:09 +0000 (16:07 -0700)
committerLinus Torvalds <[email protected]>
Wed, 4 Jun 2014 23:53:59 +0000 (16:53 -0700)
Hugepages pages never get the PG_reserved bit set, so don't clear it.

However, note that if the bit gets mistakenly set free_pages_check() will
catch it.

Signed-off-by: Luiz Capitulino <[email protected]>
Reviewed-by: Davidlohr Bueso <[email protected]>
Acked-by: Kirill A. Shutemov <[email protected]>
Reviewed-by: Zhang Yanfei <[email protected]>
Cc: Andrea Arcangeli <[email protected]>
Cc: David Rientjes <[email protected]>
Cc: Marcelo Tosatti <[email protected]>
Cc: Naoya Horiguchi <[email protected]>
Cc: Rik van Riel <[email protected]>
Cc: Yasuaki Ishimatsu <[email protected]>
Cc: Yinghai Lu <[email protected]>
Signed-off-by: Andrew Morton <[email protected]>
Signed-off-by: Linus Torvalds <[email protected]>
mm/hugetlb.c

index a66310586894d2d7e0cfa3788c39675f64577d70..c148eb295d79a8a5ad080d655d81f1d5aa03f2b3 100644 (file)
@@ -618,8 +618,8 @@ static void update_and_free_page(struct hstate *h, struct page *page)
        for (i = 0; i < pages_per_huge_page(h); i++) {
                page[i].flags &= ~(1 << PG_locked | 1 << PG_error |
                                1 << PG_referenced | 1 << PG_dirty |
-                               1 << PG_active | 1 << PG_reserved |
-                               1 << PG_private | 1 << PG_writeback);
+                               1 << PG_active | 1 << PG_private |
+                               1 << PG_writeback);
        }
        VM_BUG_ON_PAGE(hugetlb_cgroup_from_page(page), page);
        set_compound_page_dtor(page, NULL);