Commit b6a60451 authored by Hugh Dickins's avatar Hugh Dickins Committed by Linus Torvalds
Browse files

[PATCH] fix BUG_ON(!PageSlab) from fallback_alloc



pdflush hit the BUG_ON(!PageSlab(page)) in kmem_freepages called from
fallback_alloc: cache_grow already freed those pages when alloc_slabmgmt
failed.  But it wouldn't have freed them if __GFP_NO_GROW, so make sure
fallback_alloc doesn't waste its time on that case.

Signed-off-by: default avatarHugh Dickins <hugh@veritas.com>
Acked-by: default avatarChristoph Lameter <clameter@sgi.com>
Acked-by: default avatarPekka J Enberg <penberg@cs.helsinki.fi>
Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
parent be6aab0e
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -3281,7 +3281,7 @@ retry:
					flags | GFP_THISNODE, nid);
	}

	if (!obj) {
	if (!obj && !(flags & __GFP_NO_GROW)) {
		/*
		 * This allocation will be performed within the constraints
		 * of the current cpuset / memory policy requirements.
@@ -3310,7 +3310,7 @@ retry:
					 */
					goto retry;
			} else {
				kmem_freepages(cache, obj);
				/* cache_grow already freed obj */
				obj = NULL;
			}
		}