diff options
Diffstat (limited to 'include/linux/fs_pin.h')
-rw-r--r-- | include/linux/fs_pin.h | 25 |
1 files changed, 15 insertions, 10 deletions
diff --git a/include/linux/fs_pin.h b/include/linux/fs_pin.h index f66525e72ccf..9dc4e0384bfb 100644 --- a/include/linux/fs_pin.h +++ b/include/linux/fs_pin.h | |||
@@ -1,17 +1,22 @@ | |||
1 | #include <linux/fs.h> | 1 | #include <linux/wait.h> |
2 | 2 | ||
3 | struct fs_pin { | 3 | struct fs_pin { |
4 | atomic_long_t count; | 4 | wait_queue_head_t wait; |
5 | union { | 5 | int done; |
6 | struct { | 6 | struct hlist_node s_list; |
7 | struct hlist_node s_list; | 7 | struct hlist_node m_list; |
8 | struct hlist_node m_list; | ||
9 | }; | ||
10 | struct rcu_head rcu; | ||
11 | }; | ||
12 | void (*kill)(struct fs_pin *); | 8 | void (*kill)(struct fs_pin *); |
13 | }; | 9 | }; |
14 | 10 | ||
15 | void pin_put(struct fs_pin *); | 11 | struct vfsmount; |
12 | |||
13 | static inline void init_fs_pin(struct fs_pin *p, void (*kill)(struct fs_pin *)) | ||
14 | { | ||
15 | init_waitqueue_head(&p->wait); | ||
16 | p->kill = kill; | ||
17 | } | ||
18 | |||
16 | void pin_remove(struct fs_pin *); | 19 | void pin_remove(struct fs_pin *); |
20 | void pin_insert_group(struct fs_pin *, struct vfsmount *, struct hlist_head *); | ||
17 | void pin_insert(struct fs_pin *, struct vfsmount *); | 21 | void pin_insert(struct fs_pin *, struct vfsmount *); |
22 | void pin_kill(struct fs_pin *); | ||