forked from luck/tmp_suning_uos_patched
locking/percpu-rwsem: Make percpu_free_rwsem() after kzalloc() safe
This is the temporary ugly hack which will be reverted later. We only need it to ensure that the next patch will not break "change sb_writers to use percpu_rw_semaphore" patches routed via the VFS tree. The alloc_super()->destroy_super() error path assumes that it is safe to call percpu_free_rwsem() after kzalloc() without percpu_init_rwsem(), so let's not disappoint it. Signed-off-by: Oleg Nesterov <oleg@redhat.com> Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com> Reviewed-by: Josh Triplett <josh@joshtriplett.org>
This commit is contained in:
parent
07899a6e5f
commit
95b19f684c
|
@ -26,6 +26,13 @@ EXPORT_SYMBOL_GPL(__percpu_init_rwsem);
|
||||||
|
|
||||||
void percpu_free_rwsem(struct percpu_rw_semaphore *brw)
|
void percpu_free_rwsem(struct percpu_rw_semaphore *brw)
|
||||||
{
|
{
|
||||||
|
/*
|
||||||
|
* XXX: temporary kludge. The error path in alloc_super()
|
||||||
|
* assumes that percpu_free_rwsem() is safe after kzalloc().
|
||||||
|
*/
|
||||||
|
if (!brw->fast_read_ctr)
|
||||||
|
return;
|
||||||
|
|
||||||
free_percpu(brw->fast_read_ctr);
|
free_percpu(brw->fast_read_ctr);
|
||||||
brw->fast_read_ctr = NULL; /* catch use after free bugs */
|
brw->fast_read_ctr = NULL; /* catch use after free bugs */
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue
Block a user