summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--mm/slub.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/mm/slub.c b/mm/slub.c
index afc3e511ff39..e90f3e558ae7 100644
--- a/mm/slub.c
+++ b/mm/slub.c
@@ -5049,7 +5049,10 @@ __pcs_replace_empty_main(struct kmem_cache *s, struct slub_percpu_sheaves *pcs,
*/
if (pcs->main->size == 0) {
- barn_put_empty_sheaf(barn, pcs->main);
+ if (!pcs->spare)
+ pcs->spare = pcs->main;
+ else
+ barn_put_empty_sheaf(barn, pcs->main);
pcs->main = full;
return pcs;
}