aboutsummaryrefslogtreecommitdiffstats
path: root/mm
diff options
context:
space:
mode:
authorPekka Enberg <penberg@cs.helsinki.fi>2008-11-26 03:01:31 -0500
committerPekka Enberg <penberg@cs.helsinki.fi>2008-12-29 04:40:53 -0500
commit8759ec50a6cad7ca5a6d63e657d25b85ab5ba44a (patch)
tree2571915f28cc329642f527996d369bc81d953e39 /mm
parent89124d706db0aa95daacfa4c0df45a43a44d44f4 (diff)
slab: remove GFP_THISNODE clearing from alloc_slabmgmt()
Commit 6cb062296f73e74768cca2f3eaf90deac54de02d ("Categorize GFP flags") left one call-site in alloc_slabmgmt() to clear GFP_THISNODE instead of GFP_CONSTRAINT_MASK. Unfortunately, that ends up clearing __GFP_NOWARN and __GFP_NORETRY as well which is not what we want. As the only caller of alloc_slabmgmt() already clears GFP_CONSTRAINT_MASK before passing local_flags to it, we can just remove the clearing of GFP_THISNODE. This patch should fix spurious page allocation failure warnings on the mempool_alloc() path. See the following URL for the original discussion of the bug: http://lkml.org/lkml/2008/10/27/100 Acked-by: Christoph Lameter <cl@linux-foundation.org> Reported-by: Miklos Szeredi <miklos@szeredi.hu> Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
Diffstat (limited to 'mm')
-rw-r--r--mm/slab.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/mm/slab.c b/mm/slab.c
index 09187517f9dc..d4b87690b275 100644
--- a/mm/slab.c
+++ b/mm/slab.c
@@ -2609,7 +2609,7 @@ static struct slab *alloc_slabmgmt(struct kmem_cache *cachep, void *objp,
2609 if (OFF_SLAB(cachep)) { 2609 if (OFF_SLAB(cachep)) {
2610 /* Slab management obj is off-slab. */ 2610 /* Slab management obj is off-slab. */
2611 slabp = kmem_cache_alloc_node(cachep->slabp_cache, 2611 slabp = kmem_cache_alloc_node(cachep->slabp_cache,
2612 local_flags & ~GFP_THISNODE, nodeid); 2612 local_flags, nodeid);
2613 if (!slabp) 2613 if (!slabp)
2614 return NULL; 2614 return NULL;
2615 } else { 2615 } else {