/* * synchronize_srcu - wait for prior SRCU read-side critical-section completion */ void synchronize_srcu(struct srcu_struct *sp) { struct rcu_synchronize rs; init_rcu_head_on_stack(&rs.head); init_completion(&rs.completion); call_srcu(sp, &rs.head, wakeme_after_rcu); wait_for_completion(&rs.completion); destroy_rcu_head_on_stack(&rs.head); }
static void srcu_call_rcu(struct rcu_head *head, rcu_callback_t func) { call_srcu(srcu_ctlp, head, func); }