list_splice_init_rcu — splice an RCU-protected list into an existing list.
void list_splice_init_rcu ( | struct list_head * | list, |
| struct list_head * | head, | |
| void (* | sync(void)); |
listthe RCU-protected list to splice
headthe place in the list to splice the first list into
sync
function to sync: synchronize_rcu, synchronize_sched, ...
head can be RCU-read traversed concurrently with this function.
Note that this function blocks.
the caller must take whatever action is necessary to
prevent any other updates to head. In principle, it is possible
to modify the list as soon as sync begins execution.
If this sort of thing becomes necessary, an alternative version
based on call_rcu could be created. But only if -really-
needed -- there is no shortage of RCU API members.