mirror of
https://github.com/openwrt/openwrt.git
synced 2024-12-26 08:51:13 +00:00
33 lines
1.1 KiB
Diff
33 lines
1.1 KiB
Diff
|
From de30840b98e508ea9d650570686e35b1a64c900c Mon Sep 17 00:00:00 2001
|
||
|
From: popcornmix <popcornmix@gmail.com>
|
||
|
Date: Wed, 18 Jun 2014 13:42:01 +0100
|
||
|
Subject: [PATCH 044/114] vmstat: Workaround for issue where dirty page count
|
||
|
goes negative
|
||
|
|
||
|
See:
|
||
|
https://github.com/raspberrypi/linux/issues/617
|
||
|
http://www.spinics.net/lists/linux-mm/msg72236.html
|
||
|
---
|
||
|
include/linux/vmstat.h | 4 ++++
|
||
|
1 file changed, 4 insertions(+)
|
||
|
|
||
|
diff --git a/include/linux/vmstat.h b/include/linux/vmstat.h
|
||
|
index 82e7db7..f87d16d 100644
|
||
|
--- a/include/linux/vmstat.h
|
||
|
+++ b/include/linux/vmstat.h
|
||
|
@@ -241,7 +241,11 @@ static inline void __inc_zone_state(struct zone *zone, enum zone_stat_item item)
|
||
|
static inline void __dec_zone_state(struct zone *zone, enum zone_stat_item item)
|
||
|
{
|
||
|
atomic_long_dec(&zone->vm_stat[item]);
|
||
|
+ if (item == NR_FILE_DIRTY && unlikely(atomic_long_read(&zone->vm_stat[item]) < 0))
|
||
|
+ atomic_long_set(&zone->vm_stat[item], 0);
|
||
|
atomic_long_dec(&vm_stat[item]);
|
||
|
+ if (item == NR_FILE_DIRTY && unlikely(atomic_long_read(&vm_stat[item]) < 0))
|
||
|
+ atomic_long_set(&vm_stat[item], 0);
|
||
|
}
|
||
|
|
||
|
static inline void __inc_zone_page_state(struct page *page,
|
||
|
--
|
||
|
1.8.3.2
|
||
|
|