patch-2.4.23 linux-2.4.23/mm/swap.c
Next file: linux-2.4.23/mm/vmscan.c
Previous file: linux-2.4.23/mm/slab.c
Back to the patch index
Back to the overall index
- Lines: 79
- Date:
2003-11-28 10:26:21.000000000 -0800
- Orig file:
linux-2.4.22/mm/swap.c
- Orig date:
2002-11-28 15:53:15.000000000 -0800
diff -urN linux-2.4.22/mm/swap.c linux-2.4.23/mm/swap.c
@@ -94,6 +94,78 @@
spin_unlock(&pagemap_lru_lock);
}
+/**
+ * delta_nr_active_pages: alter the number of active pages.
+ *
+ * @page: the page which is being activated/deactivated
+ * @delta: +1 for activation, -1 for deactivation
+ *
+ * Called under pagecache_lock
+ */
+void delta_nr_active_pages(struct page *page, long delta)
+{
+ pg_data_t *pgdat;
+ zone_t *classzone, *overflow;
+
+ classzone = page_zone(page);
+ pgdat = classzone->zone_pgdat;
+ overflow = pgdat->node_zones + pgdat->nr_zones;
+
+ while (classzone < overflow) {
+ classzone->nr_active_pages += delta;
+ classzone++;
+ }
+ nr_active_pages += delta;
+}
+
+/**
+ * delta_nr_inactive_pages: alter the number of inactive pages.
+ *
+ * @page: the page which is being deactivated/activated
+ * @delta: +1 for deactivation, -1 for activation
+ *
+ * Called under pagecache_lock
+ */
+void delta_nr_inactive_pages(struct page *page, long delta)
+{
+ pg_data_t *pgdat;
+ zone_t *classzone, *overflow;
+
+ classzone = page_zone(page);
+ pgdat = classzone->zone_pgdat;
+ overflow = pgdat->node_zones + pgdat->nr_zones;
+
+ while (classzone < overflow) {
+ classzone->nr_inactive_pages += delta;
+ classzone++;
+ }
+ nr_inactive_pages += delta;
+}
+
+/**
+ * delta_nr_cache_pages: alter the number of pages in the pagecache
+ *
+ * @page: the page which is being added/removed
+ * @delta: +1 for addition, -1 for removal
+ *
+ * Called under pagecache_lock
+ */
+void delta_nr_cache_pages(struct page *page, long delta)
+{
+ pg_data_t *pgdat;
+ zone_t *classzone, *overflow;
+
+ classzone = page_zone(page);
+ pgdat = classzone->zone_pgdat;
+ overflow = pgdat->node_zones + pgdat->nr_zones;
+
+ while (classzone < overflow) {
+ classzone->nr_cache_pages += delta;
+ classzone++;
+ }
+ page_cache_size += delta;
+}
+
/*
* Perform any setup for the swap system
*/
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)