]> asedeno.scripts.mit.edu Git - linux.git/blobdiff - mm/hugetlb.c
mm: nobootmem: remove bootmem allocation APIs
[linux.git] / mm / hugetlb.c
index 5c390f5a5207b5c0b4d1d55524d2f655c7edcae1..51e9f17dbd5ceb890e7b0b1029fc6b69a5c2196d 100644 (file)
@@ -2100,7 +2100,7 @@ int __alloc_bootmem_huge_page(struct hstate *h)
        for_each_node_mask_to_alloc(h, nr_nodes, node, &node_states[N_MEMORY]) {
                void *addr;
 
-               addr = memblock_virt_alloc_try_nid_raw(
+               addr = memblock_alloc_try_nid_raw(
                                huge_page_size(h), huge_page_size(h),
                                0, BOOTMEM_ALLOC_ACCESSIBLE, node);
                if (addr) {
@@ -3690,6 +3690,12 @@ int huge_add_to_page_cache(struct page *page, struct address_space *mapping,
                return err;
        ClearPagePrivate(page);
 
+       /*
+        * set page dirty so that it will not be removed from cache/file
+        * by non-hugetlbfs specific code paths.
+        */
+       set_page_dirty(page);
+
        spin_lock(&inode->i_lock);
        inode->i_blocks += blocks_per_huge_page(h);
        spin_unlock(&inode->i_lock);