|
@@ -5020,14 +5020,7 @@ static void setup_per_zone_lowmem_reserve(void)
|
|
|
calculate_totalreserve_pages();
|
|
|
}
|
|
|
|
|
|
-/**
|
|
|
- * setup_per_zone_wmarks - called when min_free_kbytes changes
|
|
|
- * or when memory is hot-{added|removed}
|
|
|
- *
|
|
|
- * Ensures that the watermark[min,low,high] values for each zone are set
|
|
|
- * correctly with respect to min_free_kbytes.
|
|
|
- */
|
|
|
-void setup_per_zone_wmarks(void)
|
|
|
+static void __setup_per_zone_wmarks(void)
|
|
|
{
|
|
|
unsigned long pages_min = min_free_kbytes >> (PAGE_SHIFT - 10);
|
|
|
unsigned long lowmem_pages = 0;
|
|
@@ -5082,6 +5075,20 @@ void setup_per_zone_wmarks(void)
|
|
|
calculate_totalreserve_pages();
|
|
|
}
|
|
|
|
|
|
+/**
|
|
|
+ * setup_per_zone_wmarks - called when min_free_kbytes changes
|
|
|
+ * or when memory is hot-{added|removed}
|
|
|
+ *
|
|
|
+ * Ensures that the watermark[min,low,high] values for each zone are set
|
|
|
+ * correctly with respect to min_free_kbytes.
|
|
|
+ */
|
|
|
+void setup_per_zone_wmarks(void)
|
|
|
+{
|
|
|
+ mutex_lock(&zonelists_mutex);
|
|
|
+ __setup_per_zone_wmarks();
|
|
|
+ mutex_unlock(&zonelists_mutex);
|
|
|
+}
|
|
|
+
|
|
|
/*
|
|
|
* The inactive anon list should be small enough that the VM never has to
|
|
|
* do too much work, but large enough that each inactive page has a chance
|