new fs_pin killing logics

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
This commit is contained in:
Al Viro 2015-01-10 17:53:21 -05:00
parent fdab684d72
commit 59eda0e07f
4 changed files with 96 additions and 56 deletions

View file

@ -1,11 +1,22 @@
#include <linux/fs.h>
#include <linux/wait.h>
struct fs_pin {
wait_queue_head_t wait;
int done;
struct hlist_node s_list;
struct hlist_node m_list;
void (*kill)(struct fs_pin *);
};
struct vfsmount;
static inline void init_fs_pin(struct fs_pin *p, void (*kill)(struct fs_pin *))
{
init_waitqueue_head(&p->wait);
p->kill = kill;
}
void pin_remove(struct fs_pin *);
void pin_insert_group(struct fs_pin *, struct vfsmount *, struct hlist_head *);
void pin_insert(struct fs_pin *, struct vfsmount *);
void pin_kill(struct fs_pin *);