Merge branch 'for-linus' of git://git.kernel.dk/linux-block
[deliverable/linux.git] / include / linux / mm_inline.h
index 712e8c37a200b243b2fff14c379c8acc621a662f..5bd29ba4f174f531d1921f8ea2616b7727b069aa 100644 (file)
@@ -22,22 +22,34 @@ static inline int page_is_file_cache(struct page *page)
        return !PageSwapBacked(page);
 }
 
+static __always_inline void __update_lru_size(struct lruvec *lruvec,
+                               enum lru_list lru, int nr_pages)
+{
+       __mod_zone_page_state(lruvec_zone(lruvec), NR_LRU_BASE + lru, nr_pages);
+}
+
+static __always_inline void update_lru_size(struct lruvec *lruvec,
+                               enum lru_list lru, int nr_pages)
+{
+#ifdef CONFIG_MEMCG
+       mem_cgroup_update_lru_size(lruvec, lru, nr_pages);
+#else
+       __update_lru_size(lruvec, lru, nr_pages);
+#endif
+}
+
 static __always_inline void add_page_to_lru_list(struct page *page,
                                struct lruvec *lruvec, enum lru_list lru)
 {
-       int nr_pages = hpage_nr_pages(page);
-       mem_cgroup_update_lru_size(lruvec, lru, nr_pages);
+       update_lru_size(lruvec, lru, hpage_nr_pages(page));
        list_add(&page->lru, &lruvec->lists[lru]);
-       __mod_zone_page_state(lruvec_zone(lruvec), NR_LRU_BASE + lru, nr_pages);
 }
 
 static __always_inline void del_page_from_lru_list(struct page *page,
                                struct lruvec *lruvec, enum lru_list lru)
 {
-       int nr_pages = hpage_nr_pages(page);
-       mem_cgroup_update_lru_size(lruvec, lru, -nr_pages);
        list_del(&page->lru);
-       __mod_zone_page_state(lruvec_zone(lruvec), NR_LRU_BASE + lru, -nr_pages);
+       update_lru_size(lruvec, lru, -hpage_nr_pages(page));
 }
 
 /**
This page took 0.026043 seconds and 5 git commands to generate.