aboutsummaryrefslogtreecommitdiffstats
path: root/mm/page-writeback.c
diff options
context:
space:
mode:
Diffstat (limited to 'mm/page-writeback.c')
-rw-r--r--mm/page-writeback.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/mm/page-writeback.c b/mm/page-writeback.c
index 7b0dcea4935b..2c075dcf03d4 100644
--- a/mm/page-writeback.c
+++ b/mm/page-writeback.c
@@ -607,6 +607,8 @@ void set_page_dirty_balance(struct page *page, int page_mkwrite)
607 } 607 }
608} 608}
609 609
610static DEFINE_PER_CPU(unsigned long, bdp_ratelimits) = 0;
611
610/** 612/**
611 * balance_dirty_pages_ratelimited_nr - balance dirty memory state 613 * balance_dirty_pages_ratelimited_nr - balance dirty memory state
612 * @mapping: address_space which was dirtied 614 * @mapping: address_space which was dirtied
@@ -624,7 +626,6 @@ void set_page_dirty_balance(struct page *page, int page_mkwrite)
624void balance_dirty_pages_ratelimited_nr(struct address_space *mapping, 626void balance_dirty_pages_ratelimited_nr(struct address_space *mapping,
625 unsigned long nr_pages_dirtied) 627 unsigned long nr_pages_dirtied)
626{ 628{
627 static DEFINE_PER_CPU(unsigned long, ratelimits) = 0;
628 unsigned long ratelimit; 629 unsigned long ratelimit;
629 unsigned long *p; 630 unsigned long *p;
630 631
@@ -637,7 +638,7 @@ void balance_dirty_pages_ratelimited_nr(struct address_space *mapping,
637 * tasks in balance_dirty_pages(). Period. 638 * tasks in balance_dirty_pages(). Period.
638 */ 639 */
639 preempt_disable(); 640 preempt_disable();
640 p = &__get_cpu_var(ratelimits); 641 p = &__get_cpu_var(bdp_ratelimits);
641 *p += nr_pages_dirtied; 642 *p += nr_pages_dirtied;
642 if (unlikely(*p >= ratelimit)) { 643 if (unlikely(*p >= ratelimit)) {
643 *p = 0; 644 *p = 0;