mm/vmscan.c |    3 ++-
 1 files changed, 2 insertions(+), 1 deletion(-)

diff -puN mm/vmscan.c~less-kswapd-throttling mm/vmscan.c
--- 25/mm/vmscan.c~less-kswapd-throttling	2003-07-30 02:38:04.000000000 -0700
+++ 25-akpm/mm/vmscan.c	2003-07-30 02:38:18.000000000 -0700
@@ -930,7 +930,8 @@ static int balance_pgdat(pg_data_t *pgda
 		}
 		if (all_zones_ok)
 			break;
-		blk_congestion_wait(WRITE, HZ/10);
+		if (to_free > 0)
+			blk_congestion_wait(WRITE, HZ/10);
 	}
 	return nr_pages - to_free;
 }

_