diff --git a/[refs] b/[refs] index 8dfe51561c19..1581981a23ab 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 6adb31c90c47262c8a25bf5097de9b3426caf3ae +refs/heads/master: fcda3d89bf1366f6801447eab2d8a75ac5b9c4ce diff --git a/trunk/mm/slub.c b/trunk/mm/slub.c index 6c6d74ff0694..64fd80bdae30 100644 --- a/trunk/mm/slub.c +++ b/trunk/mm/slub.c @@ -2500,15 +2500,11 @@ int kmem_cache_shrink(struct kmem_cache *s) slab_unlock(page); discard_slab(s, page); } else { - if (n->nr_partial > MAX_PARTIAL) - list_move(&page->lru, - slabs_by_inuse + page->inuse); + list_move(&page->lru, + slabs_by_inuse + page->inuse); } } - if (n->nr_partial <= MAX_PARTIAL) - goto out; - /* * Rebuild the partial list with the slabs filled up most * first and the least used slabs at the end. @@ -2516,7 +2512,6 @@ int kmem_cache_shrink(struct kmem_cache *s) for (i = s->objects - 1; i >= 0; i--) list_splice(slabs_by_inuse + i, n->partial.prev); - out: spin_unlock_irqrestore(&n->list_lock, flags); }