From: Rik van Riel fs/buffer.c | 8 ++++---- 1 files changed, 4 insertions(+), 4 deletions(-) diff -puN fs/buffer.c~make-try_to_free_pages-walk-zonelist-fix fs/buffer.c --- 25/fs/buffer.c~make-try_to_free_pages-walk-zonelist-fix 2003-12-21 22:01:15.000000000 -0800 +++ 25-akpm/fs/buffer.c 2003-12-21 22:01:15.000000000 -0800 @@ -484,7 +484,7 @@ void invalidate_bdev(struct block_device */ static void free_more_memory(void) { - struct zone *zone; + struct zone **zones; pg_data_t *pgdat; wakeup_bdflush(1024); @@ -492,9 +492,9 @@ static void free_more_memory(void) yield(); for_each_pgdat(pgdat) { - zone = pgdat->node_zonelists[GFP_NOFS&GFP_ZONEMASK].zones[0]; - if (zone) - try_to_free_pages(zone, GFP_NOFS, 0); + zones = pgdat->node_zonelists[GFP_NOFS&GFP_ZONEMASK].zones; + if (*zones) + try_to_free_pages(zones, GFP_NOFS, 0); } } _