PG_hugetlb      = 0x04000000,
        PG_slab         = 0x02000000,
        PG_zsmalloc     = 0x01000000,
+       PG_unaccepted   = 0x00800000,
 
        PAGE_TYPE_BASE  = 0x80000000,
 
 
 PAGE_TYPE_OPS(Zsmalloc, zsmalloc, zsmalloc)
 
+/*
+ * Mark pages that has to be accepted before touched for the first time.
+ *
+ * Serialized with zone lock.
+ */
+PAGE_TYPE_OPS(Unaccepted, unaccepted, unaccepted)
+
 /**
  * PageHuge - Determine if the page belongs to hugetlbfs
  * @page: The page to test.
 
 
        account_freepages(zone, -MAX_ORDER_NR_PAGES, MIGRATE_MOVABLE);
        __mod_zone_page_state(zone, NR_UNACCEPTED, -MAX_ORDER_NR_PAGES);
+       __ClearPageUnaccepted(page);
        spin_unlock_irqrestore(&zone->lock, flags);
 
        accept_page(page, MAX_PAGE_ORDER);
        list_add_tail(&page->lru, &zone->unaccepted_pages);
        account_freepages(zone, MAX_ORDER_NR_PAGES, MIGRATE_MOVABLE);
        __mod_zone_page_state(zone, NR_UNACCEPTED, MAX_ORDER_NR_PAGES);
+       __SetPageUnaccepted(page);
        spin_unlock_irqrestore(&zone->lock, flags);
 
        if (first)