diff options
Diffstat (limited to 'mm/page-writeback.c')
-rw-r--r-- | mm/page-writeback.c | 5 |
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 | ||
610 | static 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) | |||
624 | void balance_dirty_pages_ratelimited_nr(struct address_space *mapping, | 626 | void 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; |