<html><head><meta name="color-scheme" content="light dark"></head><body><pre style="word-wrap: break-word; white-space: pre-wrap;">---

 mm/vmscan.c |   10 ++++++----
 1 files changed, 6 insertions(+), 4 deletions(-)

diff -puN mm/vmscan.c~vm-shrink-zone-div-by-0-fix mm/vmscan.c
--- 25/mm/vmscan.c~vm-shrink-zone-div-by-0-fix	2004-02-14 23:21:46.000000000 -0800
+++ 25-akpm/mm/vmscan.c	2004-02-14 23:21:46.000000000 -0800
@@ -809,14 +809,16 @@ shrink_zone(struct zone *zone, unsigned 
 	 * the inactive list is huge, and imbalance evaluates to zero all the
 	 * time which would pin the active list memory.
 	 */
-	if (zone-&gt;nr_active &gt;= zone-&gt;nr_inactive*4)
+	if (zone-&gt;nr_active &gt;= zone-&gt;nr_inactive * 4) {
 		/* ratio will be &gt;= 2 */
 		imbalance = 8*nr_pages;
-	else if (zone-&gt;nr_active &gt;= zone-&gt;nr_inactive*2)
+	} else if (zone-&gt;nr_active &gt;= zone-&gt;nr_inactive * 2) {
 		/* 1 &lt; ratio &lt; 2 */
-		imbalance = 4*nr_pages*zone-&gt;nr_active / (zone-&gt;nr_inactive*2);
-	else
+		imbalance = 4 * nr_pages*zone-&gt;nr_active /
+				(zone-&gt;nr_inactive * 2 + 1);
+	} else {
 		imbalance = nr_pages / 2;
+	}
 
 	imbalance++;
 

_
</pre></body></html>