diff --git a/mm/shrinker.c b/mm/shrinker.c index 7b61fc0ee78f..94646ee0af63 100644 --- a/mm/shrinker.c +++ b/mm/shrinker.c @@ -544,8 +544,11 @@ again: /* Call non-slab shrinkers even though kmem is disabled */ if (!memcg_kmem_online() && - !(shrinker->flags & SHRINKER_NONSLAB)) + !(shrinker->flags & SHRINKER_NONSLAB)) { + clear_bit(offset, unit->map); + shrinker_put(shrinker); continue; + } ret = do_shrink_slab(&sc, shrinker, priority); if (ret == SHRINK_EMPTY) {