---
name: "list_splice_init_rcu"
section: "9"
platform: "linux"
package: "linux-manual-2.6.26"
version: "2.6.26-29"
release: "Debian 5.0 (Lenny)"
platforms: ["linux"]
url: "https://new.carta.tech/list_splice_init_rcu"
---

# list\_splice\_init\_rcu(9)

splice an RCU-protected list into an existing list.

## 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.

## COPYRIGHT
