There's only one caller of shutdown_cache() so move the code into it.
Preparatory patch for further changes, no functional change.

Signed-off-by: Vlastimil Babka <[email protected]>
---
 mm/slab_common.c | 40 ++++++++++++++++++----------------------
 1 file changed, 18 insertions(+), 22 deletions(-)

diff --git a/mm/slab_common.c b/mm/slab_common.c
index 40b582a014b8..b76d65d7fe33 100644
--- a/mm/slab_common.c
+++ b/mm/slab_common.c
@@ -540,27 +540,6 @@ static void slab_caches_to_rcu_destroy_workfn(struct 
work_struct *work)
        }
 }
 
-static int shutdown_cache(struct kmem_cache *s)
-{
-       /* free asan quarantined objects */
-       kasan_cache_shutdown(s);
-
-       if (__kmem_cache_shutdown(s) != 0)
-               return -EBUSY;
-
-       list_del(&s->list);
-
-       if (s->flags & SLAB_TYPESAFE_BY_RCU) {
-               list_add_tail(&s->list, &slab_caches_to_rcu_destroy);
-               schedule_work(&slab_caches_to_rcu_destroy_work);
-       } else {
-               kfence_shutdown_cache(s);
-               debugfs_slab_release(s);
-       }
-
-       return 0;
-}
-
 void slab_kmem_cache_release(struct kmem_cache *s)
 {
        __kmem_cache_release(s);
@@ -585,9 +564,26 @@ void kmem_cache_destroy(struct kmem_cache *s)
        if (s->refcount)
                goto out_unlock;
 
-       err = shutdown_cache(s);
+       /* free asan quarantined objects */
+       kasan_cache_shutdown(s);
+
+       err = __kmem_cache_shutdown(s);
        WARN(err, "%s %s: Slab cache still has objects when called from %pS",
             __func__, s->name, (void *)_RET_IP_);
+
+       if (err)
+               goto out_unlock;
+
+       list_del(&s->list);
+
+       if (rcu_set) {
+               list_add_tail(&s->list, &slab_caches_to_rcu_destroy);
+               schedule_work(&slab_caches_to_rcu_destroy_work);
+       } else {
+               kfence_shutdown_cache(s);
+               debugfs_slab_release(s);
+       }
+
 out_unlock:
        mutex_unlock(&slab_mutex);
        cpus_read_unlock();

-- 
2.46.0


Reply via email to