aboutsummaryrefslogtreecommitdiffstats
path: root/fs/buffer.c
diff options
context:
space:
mode:
Diffstat (limited to 'fs/buffer.c')
-rw-r--r--fs/buffer.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/fs/buffer.c b/fs/buffer.c
index 71358499bc57..9b5434a80479 100644
--- a/fs/buffer.c
+++ b/fs/buffer.c
@@ -360,16 +360,18 @@ void invalidate_bdev(struct block_device *bdev)
360 */ 360 */
361static void free_more_memory(void) 361static void free_more_memory(void)
362{ 362{
363 struct zonelist *zonelist; 363 struct zone **zones;
364 int nid; 364 int nid;
365 365
366 wakeup_pdflush(1024); 366 wakeup_pdflush(1024);
367 yield(); 367 yield();
368 368
369 for_each_online_node(nid) { 369 for_each_online_node(nid) {
370 zonelist = node_zonelist(nid, GFP_NOFS); 370 zones = first_zones_zonelist(node_zonelist(nid, GFP_NOFS),
371 if (zonelist->zones[0]) 371 gfp_zone(GFP_NOFS));
372 try_to_free_pages(zonelist, 0, GFP_NOFS); 372 if (*zones)
373 try_to_free_pages(node_zonelist(nid, GFP_NOFS), 0,
374 GFP_NOFS);
373 } 375 }
374} 376}
375 377