blob: bdd09fd2520c00f9e4ca977a25d6da934f285ece [file] [log] [blame] [edit]
/* SPDX-License-Identifier: GPL-2.0 */
#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);
INIT_HLIST_NODE(&p->s_list);
INIT_HLIST_NODE(&p->m_list);
p->kill = kill;
}
void pin_remove(struct fs_pin *);
void pin_insert(struct fs_pin *, struct vfsmount *);
void pin_kill(struct fs_pin *);