]> Pileus Git - ~andy/linux/blobdiff - mm/internal.h
ip6tnl/sit: drop packet if ECN present with not-ECT
[~andy/linux] / mm / internal.h
index 6f6bb9ab93861af37b390bfdd7d736615a0ff6be..a4fa284f6bc213300942e2006b2161c73ffc2af7 100644 (file)
@@ -120,6 +120,11 @@ struct compact_control {
        unsigned long free_pfn;         /* isolate_freepages search base */
        unsigned long migrate_pfn;      /* isolate_migratepages search base */
        bool sync;                      /* Synchronous migration */
+       bool ignore_skip_hint;          /* Scan blocks even if marked skip */
+       bool finished_update_free;      /* True when the zone cached pfns are
+                                        * no longer being updated
+                                        */
+       bool finished_update_migrate;
 
        int order;                      /* order a direct compactor needs */
        int migratetype;                /* MOVABLE, RECLAIMABLE etc */
@@ -129,10 +134,11 @@ struct compact_control {
 };
 
 unsigned long
-isolate_freepages_range(unsigned long start_pfn, unsigned long end_pfn);
+isolate_freepages_range(struct compact_control *cc,
+                       unsigned long start_pfn, unsigned long end_pfn);
 unsigned long
 isolate_migratepages_range(struct zone *zone, struct compact_control *cc,
-                          unsigned long low_pfn, unsigned long end_pfn);
+       unsigned long low_pfn, unsigned long end_pfn, bool unevictable);
 
 #endif
 
@@ -162,9 +168,8 @@ static inline void munlock_vma_pages_all(struct vm_area_struct *vma)
 }
 
 /*
- * Called only in fault path via page_evictable() for a new page
- * to determine if it's being mapped into a LOCKED vma.
- * If so, mark page as mlocked.
+ * Called only in fault path, to determine if a new page is being
+ * mapped into a LOCKED vma.  If it is, mark page as mlocked.
  */
 static inline int mlocked_vma_newpage(struct vm_area_struct *vma,
                                    struct page *page)
@@ -175,7 +180,8 @@ static inline int mlocked_vma_newpage(struct vm_area_struct *vma,
                return 0;
 
        if (!TestSetPageMlocked(page)) {
-               inc_zone_page_state(page, NR_MLOCK);
+               mod_zone_page_state(page_zone(page), NR_MLOCK,
+                                   hpage_nr_pages(page));
                count_vm_event(UNEVICTABLE_PGMLOCKED);
        }
        return 1;
@@ -196,12 +202,7 @@ extern void munlock_vma_page(struct page *page);
  * If called for a page that is still mapped by mlocked vmas, all we do
  * is revert to lazy LRU behaviour -- semantics are not broken.
  */
-extern void __clear_page_mlock(struct page *page);
-static inline void clear_page_mlock(struct page *page)
-{
-       if (unlikely(TestClearPageMlocked(page)))
-               __clear_page_mlock(page);
-}
+extern void clear_page_mlock(struct page *page);
 
 /*
  * mlock_migrate_page - called only from migrate_page_copy() to