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: Hugh Dickins <[EMAIL PROTECTED]> ___ Fixes a CONFIG_NUMA regression introduced in 2.6.20-rc1. Or you may feel it's cleaner for cache_grow to skip its kmem_freepages when objp is input: patch below is slightly simpler, but I've no strong feeling. mm/slab.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) --- 2.6.20-rc3/mm/slab.c 2007-01-01 10:30:46.000000000 +0000 +++ linux/mm/slab.c 2007-01-04 17:30:11.000000000 +0000 @@ -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; } } - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/