]> pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - fs/buffer.c
sparsemem: vmemmap does not need section bits
[linux-2.6-omap-h63xx.git] / fs / buffer.c
index 39ff14403d137be85dcd11161584abeabd9d7577..7d51e649b19a7d8f84061186fbd84326420f44f8 100644 (file)
@@ -360,16 +360,19 @@ void invalidate_bdev(struct block_device *bdev)
  */
 static void free_more_memory(void)
 {
-       struct zone **zones;
-       pg_data_t *pgdat;
+       struct zone *zone;
+       int nid;
 
        wakeup_pdflush(1024);
        yield();
 
-       for_each_online_pgdat(pgdat) {
-               zones = pgdat->node_zonelists[gfp_zone(GFP_NOFS)].zones;
-               if (*zones)
-                       try_to_free_pages(zones, 0, GFP_NOFS);
+       for_each_online_node(nid) {
+               (void)first_zones_zonelist(node_zonelist(nid, GFP_NOFS),
+                                               gfp_zone(GFP_NOFS), NULL,
+                                               &zone);
+               if (zone)
+                       try_to_free_pages(node_zonelist(nid, GFP_NOFS), 0,
+                                               GFP_NOFS);
        }
 }
 
@@ -3180,8 +3183,7 @@ static void recalc_bh_state(void)
        
 struct buffer_head *alloc_buffer_head(gfp_t gfp_flags)
 {
-       struct buffer_head *ret = kmem_cache_alloc(bh_cachep,
-                               set_migrateflags(gfp_flags, __GFP_RECLAIMABLE));
+       struct buffer_head *ret = kmem_cache_alloc(bh_cachep, gfp_flags);
        if (ret) {
                INIT_LIST_HEAD(&ret->b_assoc_buffers);
                get_cpu_var(bh_accounting).nr++;