Linux 6.13-rc7
[linux.git] / fs / bcachefs / rcu_pending.h
blob71a2f4ddaade484ca2e24992a8ac9f5352abd633
1 /* SPDX-License-Identifier: GPL-2.0 */
2 #ifndef _LINUX_RCU_PENDING_H
3 #define _LINUX_RCU_PENDING_H
5 #include <linux/rcupdate.h>
7 struct rcu_pending;
8 typedef void (*rcu_pending_process_fn)(struct rcu_pending *, struct rcu_head *);
10 struct rcu_pending_pcpu;
12 struct rcu_pending {
13 struct rcu_pending_pcpu __percpu *p;
14 struct srcu_struct *srcu;
15 rcu_pending_process_fn process;
18 void rcu_pending_enqueue(struct rcu_pending *pending, struct rcu_head *obj);
19 struct rcu_head *rcu_pending_dequeue(struct rcu_pending *pending);
20 struct rcu_head *rcu_pending_dequeue_from_all(struct rcu_pending *pending);
22 void rcu_pending_exit(struct rcu_pending *pending);
23 int rcu_pending_init(struct rcu_pending *pending,
24 struct srcu_struct *srcu,
25 rcu_pending_process_fn process);
27 #endif /* _LINUX_RCU_PENDING_H */