diff options
author | Al Viro <viro@zeniv.linux.org.uk> | 2015-01-10 17:53:21 -0500 |
---|---|---|
committer | Al Viro <viro@zeniv.linux.org.uk> | 2015-01-25 23:17:28 -0500 |
commit | 59eda0e07f43c950d31756213b607af673e551f0 (patch) | |
tree | f40f7b67133576c36a65a4cba9aca5df68d00f34 /include/linux/fs_pin.h | |
parent | fdab684d7202774bfd8762d4a656a553b787c8ec (diff) |
new fs_pin killing logics
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Diffstat (limited to 'include/linux/fs_pin.h')
-rw-r--r-- | include/linux/fs_pin.h | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/include/linux/fs_pin.h b/include/linux/fs_pin.h index 2be38d1464ae..9dc4e0384bfb 100644 --- a/include/linux/fs_pin.h +++ b/include/linux/fs_pin.h | |||
@@ -1,11 +1,22 @@ | |||
1 | #include <linux/fs.h> | 1 | #include <linux/wait.h> |
2 | 2 | ||
3 | struct fs_pin { | 3 | struct fs_pin { |
4 | wait_queue_head_t wait; | ||
5 | int done; | ||
4 | struct hlist_node s_list; | 6 | struct hlist_node s_list; |
5 | struct hlist_node m_list; | 7 | struct hlist_node m_list; |
6 | void (*kill)(struct fs_pin *); | 8 | void (*kill)(struct fs_pin *); |
7 | }; | 9 | }; |
8 | 10 | ||
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 | |||
9 | void pin_remove(struct fs_pin *); | 19 | void pin_remove(struct fs_pin *); |
10 | void pin_insert_group(struct fs_pin *, struct vfsmount *, struct hlist_head *); | 20 | void pin_insert_group(struct fs_pin *, struct vfsmount *, struct hlist_head *); |
11 | void pin_insert(struct fs_pin *, struct vfsmount *); | 21 | void pin_insert(struct fs_pin *, struct vfsmount *); |
22 | void pin_kill(struct fs_pin *); | ||