docs: admin-guide: move sysctl directory to it
[linux-2.6-microblaze.git] / mm / swap.c
index 8310741..ae30039 100644 (file)
--- a/mm/swap.c
+++ b/mm/swap.c
@@ -8,7 +8,7 @@
 /*
  * This file contains the default values for the operation of the
  * Linux VM subsystem. Fine-tuning documentation can be found in
- * Documentation/sysctl/vm.txt.
+ * Documentation/admin-guide/sysctl/vm.rst.
  * Started 18.12.91
  * Swap aging added 23.2.95, Stephen Tweedie.
  * Buffermem limits added 12.3.98, Rik van Riel.
@@ -740,6 +740,22 @@ void release_pages(struct page **pages, int nr)
                if (is_huge_zero_page(page))
                        continue;
 
+               if (is_zone_device_page(page)) {
+                       if (locked_pgdat) {
+                               spin_unlock_irqrestore(&locked_pgdat->lru_lock,
+                                                      flags);
+                               locked_pgdat = NULL;
+                       }
+                       /*
+                        * ZONE_DEVICE pages that return 'false' from
+                        * put_devmap_managed_page() do not require special
+                        * processing, and instead, expect a call to
+                        * put_page_testzero().
+                        */
+                       if (put_devmap_managed_page(page))
+                               continue;
+               }
+
                page = compound_head(page);
                if (!put_page_testzero(page))
                        continue;