0003-vmstat-Workaround-for-issue-where-dirty-page-count-g.patch 1005 B

123456789101112131415161718192021222324252627
  1. From c68809400f149d3f176e03a3ab36e576a4d5ae79 Mon Sep 17 00:00:00 2001
  2. From: popcornmix <popcornmix@gmail.com>
  3. Date: Wed, 18 Jun 2014 13:42:01 +0100
  4. Subject: [PATCH] vmstat: Workaround for issue where dirty page count goes
  5. negative
  6. See:
  7. https://github.com/raspberrypi/linux/issues/617
  8. http://www.spinics.net/lists/linux-mm/msg72236.html
  9. ---
  10. include/linux/vmstat.h | 4 ++++
  11. 1 file changed, 4 insertions(+)
  12. --- a/include/linux/vmstat.h
  13. +++ b/include/linux/vmstat.h
  14. @@ -220,7 +220,11 @@ static inline void __inc_zone_state(stru
  15. static inline void __dec_zone_state(struct zone *zone, enum zone_stat_item item)
  16. {
  17. atomic_long_dec(&zone->vm_stat[item]);
  18. + if (item == NR_FILE_DIRTY && unlikely(atomic_long_read(&zone->vm_stat[item]) < 0))
  19. + atomic_long_set(&zone->vm_stat[item], 0);
  20. atomic_long_dec(&vm_stat[item]);
  21. + if (item == NR_FILE_DIRTY && unlikely(atomic_long_read(&vm_stat[item]) < 0))
  22. + atomic_long_set(&vm_stat[item], 0);
  23. }
  24. static inline void __inc_zone_page_state(struct page *page,