1#include <linux/wait.h>
2
3struct fs_pin {
4	wait_queue_head_t	wait;
5	int			done;
6	struct hlist_node	s_list;
7	struct hlist_node	m_list;
8	void (*kill)(struct fs_pin *);
9};
10
11struct vfsmount;
12
13static inline void init_fs_pin(struct fs_pin *p, void (*kill)(struct fs_pin *))
14{
15	init_waitqueue_head(&p->wait);
16	INIT_HLIST_NODE(&p->s_list);
17	INIT_HLIST_NODE(&p->m_list);
18	p->kill = kill;
19}
20
21void pin_remove(struct fs_pin *);
22void pin_insert_group(struct fs_pin *, struct vfsmount *, struct hlist_head *);
23void pin_insert(struct fs_pin *, struct vfsmount *);
24void pin_kill(struct fs_pin *);
25