ext4: Use rcu_barrier() on module unload.
The ext4 module uses rcu_call() thus it should use rcu_barrier()on module unload. The kmem cache ext4_pspace_cachep is sometimes free'ed using call_rcu() callbacks. Thus, we must wait for completion of call_rcu() before doing kmem_cache_destroy(). Signed-off-by: Jesper Dangaard Brouer <hawk@comx.dk> Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
This commit is contained in:
parent
726447d803
commit
3e03f9ca6a
@ -2909,7 +2909,11 @@ int __init init_ext4_mballoc(void)
|
||||
|
||||
void exit_ext4_mballoc(void)
|
||||
{
|
||||
/* XXX: synchronize_rcu(); */
|
||||
/*
|
||||
* Wait for completion of call_rcu()'s on ext4_pspace_cachep
|
||||
* before destroying the slab cache.
|
||||
*/
|
||||
rcu_barrier();
|
||||
kmem_cache_destroy(ext4_pspace_cachep);
|
||||
kmem_cache_destroy(ext4_ac_cachep);
|
||||
kmem_cache_destroy(ext4_free_ext_cachep);
|
||||
|
Loading…
Reference in New Issue
Block a user