mm, slub: consider rest of partial list if acquire_slab() fails
[platform/kernel/linux-starfive.git] / mm / slub.c
index dc5b42e..d9e4e10 100644 (file)
--- a/mm/slub.c
+++ b/mm/slub.c
@@ -1973,7 +1973,7 @@ static void *get_partial_node(struct kmem_cache *s, struct kmem_cache_node *n,
 
                t = acquire_slab(s, n, page, object == NULL, &objects);
                if (!t)
-                       break;
+                       continue; /* cmpxchg raced */
 
                available += objects;
                if (!object) {