|
@@ -26,9 +26,17 @@ DEFINE_PER_CPU(struct quicklist, quicklist)[CONFIG_NR_QUICK];
|
|
|
static unsigned long max_pages(unsigned long min_pages)
|
|
|
{
|
|
|
unsigned long node_free_pages, max;
|
|
|
+ struct zone *zones = NODE_DATA(numa_node_id())->node_zones;
|
|
|
+
|
|
|
+ node_free_pages =
|
|
|
+#ifdef CONFIG_ZONE_DMA
|
|
|
+ zone_page_state(&zones[ZONE_DMA], NR_FREE_PAGES) +
|
|
|
+#endif
|
|
|
+#ifdef CONFIG_ZONE_DMA32
|
|
|
+ zone_page_state(&zones[ZONE_DMA32], NR_FREE_PAGES) +
|
|
|
+#endif
|
|
|
+ zone_page_state(&zones[ZONE_NORMAL], NR_FREE_PAGES);
|
|
|
|
|
|
- node_free_pages = node_page_state(numa_node_id(),
|
|
|
- NR_FREE_PAGES);
|
|
|
max = node_free_pages / FRACTION_OF_NODE_MEM;
|
|
|
return max(max, min_pages);
|
|
|
}
|