diff options
Diffstat (limited to 'mm/slub.c')
| -rw-r--r-- | mm/slub.c | 2 |
1 files changed, 2 insertions, 0 deletions
| @@ -2595,6 +2595,8 @@ static inline int kmem_cache_close(struct kmem_cache *s) | |||
| 2595 | */ | 2595 | */ |
| 2596 | void kmem_cache_destroy(struct kmem_cache *s) | 2596 | void kmem_cache_destroy(struct kmem_cache *s) |
| 2597 | { | 2597 | { |
| 2598 | if (s->flags & SLAB_DESTROY_BY_RCU) | ||
| 2599 | rcu_barrier(); | ||
| 2598 | down_write(&slub_lock); | 2600 | down_write(&slub_lock); |
| 2599 | s->refcount--; | 2601 | s->refcount--; |
| 2600 | if (!s->refcount) { | 2602 | if (!s->refcount) { |
