16b3286edSKirill Korotaev #ifndef _NAMESPACE_H_ 26b3286edSKirill Korotaev #define _NAMESPACE_H_ 36b3286edSKirill Korotaev #ifdef __KERNEL__ 46b3286edSKirill Korotaev 56b3286edSKirill Korotaev #include <linux/mount.h> 66b3286edSKirill Korotaev #include <linux/sched.h> 76b3286edSKirill Korotaev #include <linux/nsproxy.h> 8a1a2c409SMiklos Szeredi #include <linux/seq_file.h> 96b3286edSKirill Korotaev 106b3286edSKirill Korotaev struct mnt_namespace { 116b3286edSKirill Korotaev atomic_t count; 126b3286edSKirill Korotaev struct vfsmount * root; 136b3286edSKirill Korotaev struct list_head list; 146b3286edSKirill Korotaev wait_queue_head_t poll; 156b3286edSKirill Korotaev int event; 166b3286edSKirill Korotaev }; 176b3286edSKirill Korotaev 18a1a2c409SMiklos Szeredi struct proc_mounts { 19a1a2c409SMiklos Szeredi struct seq_file m; /* must be the first element */ 20a1a2c409SMiklos Szeredi struct mnt_namespace *ns; 21a1a2c409SMiklos Szeredi struct path root; 22a1a2c409SMiklos Szeredi int event; 23a1a2c409SMiklos Szeredi }; 24a1a2c409SMiklos Szeredi 255ad4e53bSAl Viro struct fs_struct; 265ad4e53bSAl Viro 27213dd266SEric W. Biederman extern struct mnt_namespace *copy_mnt_ns(unsigned long, struct mnt_namespace *, 286b3286edSKirill Korotaev struct fs_struct *); 29*616511d0STrond Myklebust extern void put_mnt_ns(struct mnt_namespace *ns); 306b3286edSKirill Korotaev 316b3286edSKirill Korotaev static inline void exit_mnt_ns(struct task_struct *p) 326b3286edSKirill Korotaev { 336b3286edSKirill Korotaev struct mnt_namespace *ns = p->nsproxy->mnt_ns; 346b3286edSKirill Korotaev if (ns) 356b3286edSKirill Korotaev put_mnt_ns(ns); 366b3286edSKirill Korotaev } 376b3286edSKirill Korotaev 386b3286edSKirill Korotaev static inline void get_mnt_ns(struct mnt_namespace *ns) 396b3286edSKirill Korotaev { 406b3286edSKirill Korotaev atomic_inc(&ns->count); 416b3286edSKirill Korotaev } 426b3286edSKirill Korotaev 43a1a2c409SMiklos Szeredi extern const struct seq_operations mounts_op; 442d4d4864SRam Pai extern const struct seq_operations mountinfo_op; 45a1a2c409SMiklos Szeredi extern const struct seq_operations mountstats_op; 46a1a2c409SMiklos Szeredi 476b3286edSKirill Korotaev #endif 486b3286edSKirill Korotaev #endif 49