|
@@ -2517,7 +2517,10 @@ int __isolate_free_page(struct page *page, unsigned int order)
|
|
|
zone->free_area[order].nr_free--;
|
|
|
rmv_page_order(page);
|
|
|
|
|
|
- /* Set the pageblock if the isolated page is at least a pageblock */
|
|
|
+ /*
|
|
|
+ * Set the pageblock if the isolated page is at least half of a
|
|
|
+ * pageblock
|
|
|
+ */
|
|
|
if (order >= pageblock_order - 1) {
|
|
|
struct page *endpage = page + (1 << order) - 1;
|
|
|
for (; page < endpage; page += pageblock_nr_pages) {
|