159eda0e0SAl Viro #include <linux/wait.h> 2efb170c2SAl Viro 3efb170c2SAl Viro struct fs_pin { 459eda0e0SAl Viro wait_queue_head_t wait; 559eda0e0SAl Viro int done; 6efb170c2SAl Viro struct hlist_node s_list; 7efb170c2SAl Viro struct hlist_node m_list; 8efb170c2SAl Viro void (*kill)(struct fs_pin *); 9efb170c2SAl Viro }; 10efb170c2SAl Viro 1159eda0e0SAl Viro struct vfsmount; 1259eda0e0SAl Viro 1359eda0e0SAl Viro static inline void init_fs_pin(struct fs_pin *p, void (*kill)(struct fs_pin *)) 1459eda0e0SAl Viro { 1559eda0e0SAl Viro init_waitqueue_head(&p->wait); 16*820f9f14SEric W. Biederman INIT_HLIST_NODE(&p->s_list); 17*820f9f14SEric W. Biederman INIT_HLIST_NODE(&p->m_list); 1859eda0e0SAl Viro p->kill = kill; 1959eda0e0SAl Viro } 2059eda0e0SAl Viro 21efb170c2SAl Viro void pin_remove(struct fs_pin *); 22fdab684dSAl Viro void pin_insert_group(struct fs_pin *, struct vfsmount *, struct hlist_head *); 23efb170c2SAl Viro void pin_insert(struct fs_pin *, struct vfsmount *); 2459eda0e0SAl Viro void pin_kill(struct fs_pin *); 25