]> git.hungrycats.org Git - linux/commitdiff
[PATCH] add nowarn to a few pte chain allocators
authorAndrew Morton <akpm@osdl.org>
Fri, 12 Mar 2004 00:19:04 +0000 (16:19 -0800)
committerLinus Torvalds <torvalds@ppc970.osdl.org>
Fri, 12 Mar 2004 00:19:04 +0000 (16:19 -0800)
From: Arjan van de Ven <arjanv@redhat.com>

Several of the pte_chain_alloc() allocators that use GFP_ATOMIC have a
fallback for failure that sleeps; they thus need to not warn on failure..
Seen during a big fork on a busy system.

mm/memory.c

index 2540e2dcf7d7b1df27584f76c9d690678569a6a5..5f55fb89149fc48cadf85ee7b333547e50d69d76 100644 (file)
@@ -222,7 +222,7 @@ int copy_page_range(struct mm_struct *dst, struct mm_struct *src,
        if (is_vm_hugetlb_page(vma))
                return copy_hugetlb_page_range(dst, src, vma);
 
-       pte_chain = pte_chain_alloc(GFP_ATOMIC);
+       pte_chain = pte_chain_alloc(GFP_ATOMIC | __GFP_NOWARN);
        if (!pte_chain) {
                spin_unlock(&dst->page_table_lock);
                pte_chain = pte_chain_alloc(GFP_KERNEL);
@@ -335,7 +335,7 @@ skip_copy_pte_range:
                                                        pte_chain);
                                if (pte_chain)
                                        goto cont_copy_pte_range_noset;
-                               pte_chain = pte_chain_alloc(GFP_ATOMIC);
+                               pte_chain = pte_chain_alloc(GFP_ATOMIC | __GFP_NOWARN);
                                if (pte_chain)
                                        goto cont_copy_pte_range_noset;
 
@@ -1336,7 +1336,7 @@ do_anonymous_page(struct mm_struct *mm, struct vm_area_struct *vma,
        struct pte_chain *pte_chain;
        int ret;
 
-       pte_chain = pte_chain_alloc(GFP_ATOMIC);
+       pte_chain = pte_chain_alloc(GFP_ATOMIC | __GFP_NOWARN);
        if (!pte_chain) {
                pte_unmap(page_table);
                spin_unlock(&mm->page_table_lock);