Lines Matching refs:head
46 b->head = NULL; in rcu_batch_init()
47 b->tail = &b->head; in rcu_batch_init()
53 static inline void rcu_batch_queue(struct rcu_batch *b, struct rcu_head *head) in rcu_batch_queue() argument
55 *b->tail = head; in rcu_batch_queue()
56 b->tail = &head->next; in rcu_batch_queue()
64 return b->tail == &b->head; in rcu_batch_empty()
73 struct rcu_head *head; in rcu_batch_dequeue() local
78 head = b->head; in rcu_batch_dequeue()
79 b->head = head->next; in rcu_batch_dequeue()
80 if (b->tail == &head->next) in rcu_batch_dequeue()
83 return head; in rcu_batch_dequeue()
93 *to->tail = from->head; in rcu_batch_move()
388 void call_srcu(struct srcu_struct *sp, struct rcu_head *head, in call_srcu() argument
389 void (*func)(struct rcu_head *head)) in call_srcu() argument
393 head->next = NULL; in call_srcu()
394 head->func = func; in call_srcu()
396 rcu_batch_queue(&sp->batch_queue, head); in call_srcu()
414 struct rcu_head *head = &rcu.head; in __synchronize_srcu() local
426 head->next = NULL; in __synchronize_srcu()
427 head->func = wakeme_after_rcu; in __synchronize_srcu()
432 rcu_batch_queue(&sp->batch_check0, head); in __synchronize_srcu()
437 BUG_ON(sp->batch_done.head != head); in __synchronize_srcu()
444 rcu_batch_queue(&sp->batch_queue, head); in __synchronize_srcu()
622 struct rcu_head *head; in srcu_invoke_callbacks() local
625 head = rcu_batch_dequeue(&sp->batch_done); in srcu_invoke_callbacks()
626 if (!head) in srcu_invoke_callbacks()
629 head->func(head); in srcu_invoke_callbacks()