Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

Merge branch 'slab/urgent' of git://git.kernel.org/pub/scm/linux/kernel/git/penberg/linux

Pull SLAB fix from Pekka Enberg:
"This contains a lockdep false positive fix from Jiri Kosina I missed
from the previous pull request."

* 'slab/urgent' of git://git.kernel.org/pub/scm/linux/kernel/git/penberg/linux:
mm, slab: release slab_mutex earlier in kmem_cache_destroy()

+4 -1
+4 -1
mm/slab_common.c
··· 168 168 list_del(&s->list); 169 169 170 170 if (!__kmem_cache_shutdown(s)) { 171 + mutex_unlock(&slab_mutex); 171 172 if (s->flags & SLAB_DESTROY_BY_RCU) 172 173 rcu_barrier(); 173 174 ··· 176 175 kmem_cache_free(kmem_cache, s); 177 176 } else { 178 177 list_add(&s->list, &slab_caches); 178 + mutex_unlock(&slab_mutex); 179 179 printk(KERN_ERR "kmem_cache_destroy %s: Slab cache still has objects\n", 180 180 s->name); 181 181 dump_stack(); 182 182 } 183 + } else { 184 + mutex_unlock(&slab_mutex); 183 185 } 184 - mutex_unlock(&slab_mutex); 185 186 put_online_cpus(); 186 187 } 187 188 EXPORT_SYMBOL(kmem_cache_destroy);