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) ) ; |
list
the RCU-protected list to splice
head
the 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.