--- linux-2.6-npiggin/mm/vmscan.c | 4 +++- 1 files changed, 3 insertions(+), 1 deletion(-) diff -puN mm/vmscan.c~vm-break-kswapd mm/vmscan.c --- linux-2.6/mm/vmscan.c~vm-break-kswapd 2004-10-17 12:30:02.000000000 +1000 +++ linux-2.6-npiggin/mm/vmscan.c 2004-10-17 12:30:16.000000000 +1000 @@ -1103,8 +1103,10 @@ out: zone->prev_priority = zone->temp_priority; } - if (!all_zones_ok) + if (!all_zones_ok) { + cond_resched(); goto loop_again; + } return total_reclaimed; } _