list_splice_init_rcu
Prev | Doubly Linked Lists | Next

## Name

list_splice_init_rcu — splice an RCU-protected list into an existing list.

## Synopsis

`void list_splice_init_rcu (` | struct list_head * | list,
| struct list_head * | head,
| void (* | sync`(`void`)``)`;

## Arguments

`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`, ...

## Description

`head` can be RCU-read traversed concurrently with this function.

Note that this function blocks.

## Important note

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.

Prev | Up | Next
list_splice_init | Home | list_entry