slub: fix kmem_cache_shrink return value
It is supposed to return 0 if the cache has no remaining objects and 1 otherwise, while currently it always returns 0. Fix it. Signed-off-by: Vladimir Davydov <vdavydov@parallels.com> Acked-by: Christoph Lameter <cl@linux.com> Cc: Pekka Enberg <penberg@kernel.org> Cc: David Rientjes <rientjes@google.com> Cc: Joonsoo Kim <iamjoonsoo.kim@lge.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
parent
832f37f5d5
commit
ce3712d74d
@ -3379,6 +3379,7 @@ int __kmem_cache_shrink(struct kmem_cache *s)
|
|||||||
struct list_head discard;
|
struct list_head discard;
|
||||||
struct list_head promote[SHRINK_PROMOTE_MAX];
|
struct list_head promote[SHRINK_PROMOTE_MAX];
|
||||||
unsigned long flags;
|
unsigned long flags;
|
||||||
|
int ret = 0;
|
||||||
|
|
||||||
flush_all(s);
|
flush_all(s);
|
||||||
for_each_kmem_cache_node(s, node, n) {
|
for_each_kmem_cache_node(s, node, n) {
|
||||||
@ -3425,9 +3426,12 @@ int __kmem_cache_shrink(struct kmem_cache *s)
|
|||||||
/* Release empty slabs */
|
/* Release empty slabs */
|
||||||
list_for_each_entry_safe(page, t, &discard, lru)
|
list_for_each_entry_safe(page, t, &discard, lru)
|
||||||
discard_slab(s, page);
|
discard_slab(s, page);
|
||||||
|
|
||||||
|
if (slabs_node(s, node))
|
||||||
|
ret = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
return 0;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int slab_mem_going_offline_callback(void *arg)
|
static int slab_mem_going_offline_callback(void *arg)
|
||||||
|
Loading…
Reference in New Issue
Block a user