| From 3a3c02ecf7f2852f122d6d16fb9b3d9cb0c6f201 Mon Sep 17 00:00:00 2001 |
| From: Johannes Weiner <hannes@cmpxchg.org> |
| Date: Wed, 29 Oct 2014 14:50:46 -0700 |
| Subject: mm: page-writeback: inline account_page_dirtied() into single caller |
| |
| From: Johannes Weiner <hannes@cmpxchg.org> |
| |
| commit 3a3c02ecf7f2852f122d6d16fb9b3d9cb0c6f201 upstream. |
| |
| A follow-up patch would have changed the call signature. To save the |
| trouble, just fold it instead. |
| |
| Signed-off-by: Johannes Weiner <hannes@cmpxchg.org> |
| Acked-by: Michal Hocko <mhocko@suse.cz> |
| Cc: Vladimir Davydov <vdavydov@parallels.com> |
| Signed-off-by: Andrew Morton <akpm@linux-foundation.org> |
| Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| |
| --- |
| include/linux/mm.h | 1 - |
| mm/page-writeback.c | 23 ++++------------------- |
| 2 files changed, 4 insertions(+), 20 deletions(-) |
| |
| --- a/include/linux/mm.h |
| +++ b/include/linux/mm.h |
| @@ -1233,7 +1233,6 @@ int __set_page_dirty_no_writeback(struct |
| int redirty_page_for_writepage(struct writeback_control *wbc, |
| struct page *page); |
| void account_page_dirtied(struct page *page, struct address_space *mapping); |
| -void account_page_writeback(struct page *page); |
| int set_page_dirty(struct page *page); |
| int set_page_dirty_lock(struct page *page); |
| int clear_page_dirty_for_io(struct page *page); |
| --- a/mm/page-writeback.c |
| +++ b/mm/page-writeback.c |
| @@ -2116,23 +2116,6 @@ void account_page_dirtied(struct page *p |
| EXPORT_SYMBOL(account_page_dirtied); |
| |
| /* |
| - * Helper function for set_page_writeback family. |
| - * |
| - * The caller must hold mem_cgroup_begin/end_update_page_stat() lock |
| - * while calling this function. |
| - * See test_set_page_writeback for example. |
| - * |
| - * NOTE: Unlike account_page_dirtied this does not rely on being atomic |
| - * wrt interrupts. |
| - */ |
| -void account_page_writeback(struct page *page) |
| -{ |
| - mem_cgroup_inc_page_stat(page, MEM_CGROUP_STAT_WRITEBACK); |
| - inc_zone_page_state(page, NR_WRITEBACK); |
| -} |
| -EXPORT_SYMBOL(account_page_writeback); |
| - |
| -/* |
| * For address_spaces which do not use buffers. Just tag the page as dirty in |
| * its radix tree. |
| * |
| @@ -2410,8 +2393,10 @@ int __test_set_page_writeback(struct pag |
| } else { |
| ret = TestSetPageWriteback(page); |
| } |
| - if (!ret) |
| - account_page_writeback(page); |
| + if (!ret) { |
| + mem_cgroup_inc_page_stat(page, MEM_CGROUP_STAT_WRITEBACK); |
| + inc_zone_page_state(page, NR_WRITEBACK); |
| + } |
| mem_cgroup_end_update_page_stat(page, &locked, &memcg_flags); |
| return ret; |
| |