#include <linux/mount.h>
#include <linux/seq_file.h>
#include <linux/poll.h>
#include <linux/ns_common.h>
#include <linux/fs_pin.h>
struct mnt_namespace { … } __randomize_layout;
struct mnt_pcp { … };
struct mountpoint { … };
struct mount { … } __randomize_layout;
#define MNT_NS_INTERNAL …
static inline struct mount *real_mount(struct vfsmount *mnt)
{ … }
static inline int mnt_has_parent(struct mount *mnt)
{ … }
static inline int is_mounted(struct vfsmount *mnt)
{ … }
extern struct mount *__lookup_mnt(struct vfsmount *, struct dentry *);
extern int __legitimize_mnt(struct vfsmount *, unsigned);
static inline bool __path_is_mountpoint(const struct path *path)
{ … }
extern void __detach_mounts(struct dentry *dentry);
static inline void detach_mounts(struct dentry *dentry)
{ … }
static inline void get_mnt_ns(struct mnt_namespace *ns)
{ … }
extern seqlock_t mount_lock;
struct proc_mounts { … };
extern const struct seq_operations mounts_op;
extern bool __is_local_mountpoint(struct dentry *dentry);
static inline bool is_local_mountpoint(struct dentry *dentry)
{ … }
static inline bool is_anon_ns(struct mnt_namespace *ns)
{ … }
static inline void move_from_ns(struct mount *mnt, struct list_head *dt_list)
{ … }
extern void mnt_cursor_del(struct mnt_namespace *ns, struct mount *cursor);
bool has_locked_children(struct mount *mnt, struct dentry *dentry);