As usual these patches were extracted and rebased from the raspberry pi repo: https://github.com/raspberrypi/linux/tree/rpi-4.4.y Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
		
			
				
	
	
		
			28 lines
		
	
	
		
			1013 B
		
	
	
	
		
			Diff
		
	
	
	
	
	
			
		
		
	
	
			28 lines
		
	
	
		
			1013 B
		
	
	
	
		
			Diff
		
	
	
	
	
	
From d69c65cb5ad6738d5bec2531df75824c44459800 Mon Sep 17 00:00:00 2001
 | 
						|
From: popcornmix <popcornmix@gmail.com>
 | 
						|
Date: Wed, 18 Jun 2014 13:42:01 +0100
 | 
						|
Subject: [PATCH 003/423] 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(+)
 | 
						|
 | 
						|
--- a/include/linux/vmstat.h
 | 
						|
+++ b/include/linux/vmstat.h
 | 
						|
@@ -219,7 +219,11 @@ static inline void __inc_zone_state(stru
 | 
						|
 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,
 |