diff options
Diffstat (limited to 'mm')
-rw-r--r-- | mm/memcontrol.c | 16 |
1 files changed, 8 insertions, 8 deletions
diff --git a/mm/memcontrol.c b/mm/memcontrol.c index f891876efee1..395fd8e4166a 100644 --- a/mm/memcontrol.c +++ b/mm/memcontrol.c | |||
@@ -275,10 +275,10 @@ static void unlock_page_cgroup(struct page *page) | |||
275 | bit_spin_unlock(PAGE_CGROUP_LOCK_BIT, &page->page_cgroup); | 275 | bit_spin_unlock(PAGE_CGROUP_LOCK_BIT, &page->page_cgroup); |
276 | } | 276 | } |
277 | 277 | ||
278 | static void __mem_cgroup_remove_list(struct page_cgroup *pc) | 278 | static void __mem_cgroup_remove_list(struct mem_cgroup_per_zone *mz, |
279 | struct page_cgroup *pc) | ||
279 | { | 280 | { |
280 | int from = pc->flags & PAGE_CGROUP_FLAG_ACTIVE; | 281 | int from = pc->flags & PAGE_CGROUP_FLAG_ACTIVE; |
281 | struct mem_cgroup_per_zone *mz = page_cgroup_zoneinfo(pc); | ||
282 | 282 | ||
283 | if (from) | 283 | if (from) |
284 | MEM_CGROUP_ZSTAT(mz, MEM_CGROUP_ZSTAT_ACTIVE) -= 1; | 284 | MEM_CGROUP_ZSTAT(mz, MEM_CGROUP_ZSTAT_ACTIVE) -= 1; |
@@ -289,10 +289,10 @@ static void __mem_cgroup_remove_list(struct page_cgroup *pc) | |||
289 | list_del_init(&pc->lru); | 289 | list_del_init(&pc->lru); |
290 | } | 290 | } |
291 | 291 | ||
292 | static void __mem_cgroup_add_list(struct page_cgroup *pc) | 292 | static void __mem_cgroup_add_list(struct mem_cgroup_per_zone *mz, |
293 | struct page_cgroup *pc) | ||
293 | { | 294 | { |
294 | int to = pc->flags & PAGE_CGROUP_FLAG_ACTIVE; | 295 | int to = pc->flags & PAGE_CGROUP_FLAG_ACTIVE; |
295 | struct mem_cgroup_per_zone *mz = page_cgroup_zoneinfo(pc); | ||
296 | 296 | ||
297 | if (!to) { | 297 | if (!to) { |
298 | MEM_CGROUP_ZSTAT(mz, MEM_CGROUP_ZSTAT_INACTIVE) += 1; | 298 | MEM_CGROUP_ZSTAT(mz, MEM_CGROUP_ZSTAT_INACTIVE) += 1; |
@@ -618,7 +618,7 @@ retry: | |||
618 | 618 | ||
619 | mz = page_cgroup_zoneinfo(pc); | 619 | mz = page_cgroup_zoneinfo(pc); |
620 | spin_lock_irqsave(&mz->lru_lock, flags); | 620 | spin_lock_irqsave(&mz->lru_lock, flags); |
621 | __mem_cgroup_add_list(pc); | 621 | __mem_cgroup_add_list(mz, pc); |
622 | spin_unlock_irqrestore(&mz->lru_lock, flags); | 622 | spin_unlock_irqrestore(&mz->lru_lock, flags); |
623 | 623 | ||
624 | unlock_page_cgroup(page); | 624 | unlock_page_cgroup(page); |
@@ -674,7 +674,7 @@ void mem_cgroup_uncharge_page(struct page *page) | |||
674 | if (--(pc->ref_cnt) == 0) { | 674 | if (--(pc->ref_cnt) == 0) { |
675 | mz = page_cgroup_zoneinfo(pc); | 675 | mz = page_cgroup_zoneinfo(pc); |
676 | spin_lock_irqsave(&mz->lru_lock, flags); | 676 | spin_lock_irqsave(&mz->lru_lock, flags); |
677 | __mem_cgroup_remove_list(pc); | 677 | __mem_cgroup_remove_list(mz, pc); |
678 | spin_unlock_irqrestore(&mz->lru_lock, flags); | 678 | spin_unlock_irqrestore(&mz->lru_lock, flags); |
679 | 679 | ||
680 | page_assign_page_cgroup(page, NULL); | 680 | page_assign_page_cgroup(page, NULL); |
@@ -736,7 +736,7 @@ void mem_cgroup_page_migration(struct page *page, struct page *newpage) | |||
736 | 736 | ||
737 | mz = page_cgroup_zoneinfo(pc); | 737 | mz = page_cgroup_zoneinfo(pc); |
738 | spin_lock_irqsave(&mz->lru_lock, flags); | 738 | spin_lock_irqsave(&mz->lru_lock, flags); |
739 | __mem_cgroup_remove_list(pc); | 739 | __mem_cgroup_remove_list(mz, pc); |
740 | spin_unlock_irqrestore(&mz->lru_lock, flags); | 740 | spin_unlock_irqrestore(&mz->lru_lock, flags); |
741 | 741 | ||
742 | page_assign_page_cgroup(page, NULL); | 742 | page_assign_page_cgroup(page, NULL); |
@@ -748,7 +748,7 @@ void mem_cgroup_page_migration(struct page *page, struct page *newpage) | |||
748 | 748 | ||
749 | mz = page_cgroup_zoneinfo(pc); | 749 | mz = page_cgroup_zoneinfo(pc); |
750 | spin_lock_irqsave(&mz->lru_lock, flags); | 750 | spin_lock_irqsave(&mz->lru_lock, flags); |
751 | __mem_cgroup_add_list(pc); | 751 | __mem_cgroup_add_list(mz, pc); |
752 | spin_unlock_irqrestore(&mz->lru_lock, flags); | 752 | spin_unlock_irqrestore(&mz->lru_lock, flags); |
753 | 753 | ||
754 | unlock_page_cgroup(newpage); | 754 | unlock_page_cgroup(newpage); |