0001
0002 #include <linux/wait.h>
0003
0004 struct fs_pin {
0005 wait_queue_head_t wait;
0006 int done;
0007 struct hlist_node s_list;
0008 struct hlist_node m_list;
0009 void (*kill)(struct fs_pin *);
0010 };
0011
0012 struct vfsmount;
0013
0014 static inline void init_fs_pin(struct fs_pin *p, void (*kill)(struct fs_pin *))
0015 {
0016 init_waitqueue_head(&p->wait);
0017 INIT_HLIST_NODE(&p->s_list);
0018 INIT_HLIST_NODE(&p->m_list);
0019 p->kill = kill;
0020 }
0021
0022 void pin_remove(struct fs_pin *);
0023 void pin_insert(struct fs_pin *, struct vfsmount *);
0024 void pin_kill(struct fs_pin *);