aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux/mnt_namespace.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/linux/mnt_namespace.h')
-rw-r--r--include/linux/mnt_namespace.h23
1 files changed, 4 insertions, 19 deletions
diff --git a/include/linux/mnt_namespace.h b/include/linux/mnt_namespace.h
index 3a059298cc19..d74785c2393a 100644
--- a/include/linux/mnt_namespace.h
+++ b/include/linux/mnt_namespace.h
@@ -2,10 +2,9 @@
2#define _NAMESPACE_H_ 2#define _NAMESPACE_H_
3#ifdef __KERNEL__ 3#ifdef __KERNEL__
4 4
5#include <linux/mount.h> 5#include <linux/path.h>
6#include <linux/sched.h>
7#include <linux/nsproxy.h>
8#include <linux/seq_file.h> 6#include <linux/seq_file.h>
7#include <linux/wait.h>
9 8
10struct mnt_namespace { 9struct mnt_namespace {
11 atomic_t count; 10 atomic_t count;
@@ -24,24 +23,10 @@ struct proc_mounts {
24 23
25struct fs_struct; 24struct fs_struct;
26 25
26extern struct mnt_namespace *create_mnt_ns(struct vfsmount *mnt);
27extern struct mnt_namespace *copy_mnt_ns(unsigned long, struct mnt_namespace *, 27extern struct mnt_namespace *copy_mnt_ns(unsigned long, struct mnt_namespace *,
28 struct fs_struct *); 28 struct fs_struct *);
29extern void __put_mnt_ns(struct mnt_namespace *ns); 29extern void put_mnt_ns(struct mnt_namespace *ns);
30
31static inline void put_mnt_ns(struct mnt_namespace *ns)
32{
33 if (atomic_dec_and_lock(&ns->count, &vfsmount_lock))
34 /* releases vfsmount_lock */
35 __put_mnt_ns(ns);
36}
37
38static inline void exit_mnt_ns(struct task_struct *p)
39{
40 struct mnt_namespace *ns = p->nsproxy->mnt_ns;
41 if (ns)
42 put_mnt_ns(ns);
43}
44
45static inline void get_mnt_ns(struct mnt_namespace *ns) 30static inline void get_mnt_ns(struct mnt_namespace *ns)
46{ 31{
47 atomic_inc(&ns->count); 32 atomic_inc(&ns->count);