diff options
Diffstat (limited to 'mm/truncate.c')
-rw-r--r-- | mm/truncate.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/mm/truncate.c b/mm/truncate.c index e3ee0e27cd17..51a24f6a555d 100644 --- a/mm/truncate.c +++ b/mm/truncate.c | |||
@@ -528,7 +528,7 @@ invalidate_complete_page2(struct address_space *mapping, struct page *page) | |||
528 | if (page_has_private(page) && !try_to_release_page(page, GFP_KERNEL)) | 528 | if (page_has_private(page) && !try_to_release_page(page, GFP_KERNEL)) |
529 | return 0; | 529 | return 0; |
530 | 530 | ||
531 | memcg = mem_cgroup_begin_page_stat(page); | 531 | memcg = lock_page_memcg(page); |
532 | spin_lock_irqsave(&mapping->tree_lock, flags); | 532 | spin_lock_irqsave(&mapping->tree_lock, flags); |
533 | if (PageDirty(page)) | 533 | if (PageDirty(page)) |
534 | goto failed; | 534 | goto failed; |
@@ -536,7 +536,7 @@ invalidate_complete_page2(struct address_space *mapping, struct page *page) | |||
536 | BUG_ON(page_has_private(page)); | 536 | BUG_ON(page_has_private(page)); |
537 | __delete_from_page_cache(page, NULL, memcg); | 537 | __delete_from_page_cache(page, NULL, memcg); |
538 | spin_unlock_irqrestore(&mapping->tree_lock, flags); | 538 | spin_unlock_irqrestore(&mapping->tree_lock, flags); |
539 | mem_cgroup_end_page_stat(memcg); | 539 | unlock_page_memcg(memcg); |
540 | 540 | ||
541 | if (mapping->a_ops->freepage) | 541 | if (mapping->a_ops->freepage) |
542 | mapping->a_ops->freepage(page); | 542 | mapping->a_ops->freepage(page); |
@@ -545,7 +545,7 @@ invalidate_complete_page2(struct address_space *mapping, struct page *page) | |||
545 | return 1; | 545 | return 1; |
546 | failed: | 546 | failed: |
547 | spin_unlock_irqrestore(&mapping->tree_lock, flags); | 547 | spin_unlock_irqrestore(&mapping->tree_lock, flags); |
548 | mem_cgroup_end_page_stat(memcg); | 548 | unlock_page_memcg(memcg); |
549 | return 0; | 549 | return 0; |
550 | } | 550 | } |
551 | 551 | ||