#ifndef _NAMESPACE_H_ #define _NAMESPACE_H_ #ifdef __KERNEL__ #include <linux/path.h> #include <linux/seq_file.h> #include <linux/wait.h> struct mnt_namespace { atomic_t count; unsigned int proc_inum; struct vfsmount * root; struct list_head list; struct user_namespace *user_ns; u64 seq; /* Sequence number to prevent loops */ wait_queue_head_t poll; int event; }; struct proc_mounts { struct seq_file m; struct mnt_namespace *ns; struct path root; int event; }; struct fs_struct; struct user_namespace; extern struct mnt_namespace *create_mnt_ns(struct vfsmount *mnt); extern struct mnt_namespace *copy_mnt_ns(unsigned long, struct mnt_namespace *, struct user_namespace *, struct fs_struct *); extern void put_mnt_ns(struct mnt_namespace *ns); static inline void get_mnt_ns(struct mnt_namespace *ns) { atomic_inc(&ns->count); } #define proc_mounts(p) (container_of((p), struct proc_mounts, m)) extern const struct seq_operations mounts_op; extern const struct seq_operations mountinfo_op; extern const struct seq_operations mountstats_op; extern int mnt_had_events(struct proc_mounts *); #endif #endif