rcu_sync: Introduce rcu_sync_dtor()
authorOleg Nesterov <oleg@redhat.com>
Fri, 21 Aug 2015 17:42:52 +0000 (19:42 +0200)
committerPaul E. McKenney <paulmck@linux.vnet.ibm.com>
Tue, 6 Oct 2015 18:25:21 +0000 (11:25 -0700)
commit07899a6e5f56136028c44a57ad0451e797365ac3
tree48fc600387bae30a64284ae0d7acfb767277cfde
parent3a518b76af7bb411efe6dd090fbf098e29accb2e
rcu_sync: Introduce rcu_sync_dtor()

This commit allows rcu_sync structures to be safely deallocated,
The trick is to add a new ->wait field to the gp_ops array.
This field is a pointer to the rcu_barrier() function corresponding
to the flavor of RCU in question.  This allows a new rcu_sync_dtor()
to wait for any outstanding callbacks before freeing the rcu_sync
structure.

Signed-off-by: Oleg Nesterov <oleg@redhat.com>
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
Reviewed-by: Josh Triplett <josh@joshtriplett.org>
include/linux/rcu_sync.h
kernel/rcu/sync.c