| #ifndef _NAMESPACE_H_ | 
 | #define _NAMESPACE_H_ | 
 | #ifdef __KERNEL__ | 
 |  | 
 | #include <linux/mount.h> | 
 | #include <linux/sched.h> | 
 | #include <linux/nsproxy.h> | 
 |  | 
 | struct mnt_namespace { | 
 | 	atomic_t		count; | 
 | 	struct vfsmount *	root; | 
 | 	struct list_head	list; | 
 | 	wait_queue_head_t poll; | 
 | 	int event; | 
 | }; | 
 |  | 
 | extern struct mnt_namespace *copy_mnt_ns(int, struct mnt_namespace *, | 
 | 		struct fs_struct *); | 
 | extern void __put_mnt_ns(struct mnt_namespace *ns); | 
 |  | 
 | static inline void put_mnt_ns(struct mnt_namespace *ns) | 
 | { | 
 | 	if (atomic_dec_and_lock(&ns->count, &vfsmount_lock)) | 
 | 		/* releases vfsmount_lock */ | 
 | 		__put_mnt_ns(ns); | 
 | } | 
 |  | 
 | static inline void exit_mnt_ns(struct task_struct *p) | 
 | { | 
 | 	struct mnt_namespace *ns = p->nsproxy->mnt_ns; | 
 | 	if (ns) | 
 | 		put_mnt_ns(ns); | 
 | } | 
 |  | 
 | static inline void get_mnt_ns(struct mnt_namespace *ns) | 
 | { | 
 | 	atomic_inc(&ns->count); | 
 | } | 
 |  | 
 | #endif | 
 | #endif |