diff
+ atomic_t page_ref_count;
  static inline void free_the_page(struct page *page, unsigned int order)
  {
+     if (atomic_dec_and_test(&page->page_ref_count)) {
          if (pcp_allowed_order(order))        /* Via pcp? */
              free_unref_page(page, order);
          else
              __free_pages_ok(page, order, FPI_NONE);
+     }
  }
