diff options
| author | Al Viro <viro@zeniv.linux.org.uk> | 2014-10-31 22:56:04 -0400 |
|---|---|---|
| committer | Al Viro <viro@zeniv.linux.org.uk> | 2014-12-04 14:31:00 -0500 |
| commit | 435d5f4bb2ccba3b791d9ef61d2590e30b8e806e (patch) | |
| tree | d482ef15334a703bbe406dab021880ce3d320870 | |
| parent | cac7f2429872d3733dc3f9915857b1691da2eb2f (diff) | |
common object embedded into various struct ....ns
for now - just move corresponding ->proc_inum instances over there
Acked-by: "Eric W. Biederman" <ebiederm@xmission.com>
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
| -rw-r--r-- | fs/mount.h | 3 | ||||
| -rw-r--r-- | fs/namespace.c | 6 | ||||
| -rw-r--r-- | include/linux/ipc_namespace.h | 3 | ||||
| -rw-r--r-- | include/linux/ns_common.h | 8 | ||||
| -rw-r--r-- | include/linux/pid_namespace.h | 3 | ||||
| -rw-r--r-- | include/linux/user_namespace.h | 3 | ||||
| -rw-r--r-- | include/linux/utsname.h | 3 | ||||
| -rw-r--r-- | include/net/net_namespace.h | 3 | ||||
| -rw-r--r-- | init/version.c | 2 | ||||
| -rw-r--r-- | ipc/msgutil.c | 2 | ||||
| -rw-r--r-- | ipc/namespace.c | 8 | ||||
| -rw-r--r-- | kernel/pid.c | 2 | ||||
| -rw-r--r-- | kernel/pid_namespace.c | 6 | ||||
| -rw-r--r-- | kernel/user.c | 2 | ||||
| -rw-r--r-- | kernel/user_namespace.c | 6 | ||||
| -rw-r--r-- | kernel/utsname.c | 6 | ||||
| -rw-r--r-- | net/core/net_namespace.c | 6 |
17 files changed, 43 insertions, 29 deletions
diff --git a/fs/mount.h b/fs/mount.h index f82c62840905..0ad6f760ce52 100644 --- a/fs/mount.h +++ b/fs/mount.h | |||
| @@ -1,10 +1,11 @@ | |||
| 1 | #include <linux/mount.h> | 1 | #include <linux/mount.h> |
| 2 | #include <linux/seq_file.h> | 2 | #include <linux/seq_file.h> |
| 3 | #include <linux/poll.h> | 3 | #include <linux/poll.h> |
| 4 | #include <linux/ns_common.h> | ||
| 4 | 5 | ||
| 5 | struct mnt_namespace { | 6 | struct mnt_namespace { |
| 6 | atomic_t count; | 7 | atomic_t count; |
| 7 | unsigned int proc_inum; | 8 | struct ns_common ns; |
| 8 | struct mount * root; | 9 | struct mount * root; |
| 9 | struct list_head list; | 10 | struct list_head list; |
| 10 | struct user_namespace *user_ns; | 11 | struct user_namespace *user_ns; |
diff --git a/fs/namespace.c b/fs/namespace.c index 5b66b2b3624d..adc2ea2532a0 100644 --- a/fs/namespace.c +++ b/fs/namespace.c | |||
| @@ -2640,7 +2640,7 @@ dput_out: | |||
| 2640 | 2640 | ||
| 2641 | static void free_mnt_ns(struct mnt_namespace *ns) | 2641 | static void free_mnt_ns(struct mnt_namespace *ns) |
| 2642 | { | 2642 | { |
| 2643 | proc_free_inum(ns->proc_inum); | 2643 | proc_free_inum(ns->ns.inum); |
| 2644 | put_user_ns(ns->user_ns); | 2644 | put_user_ns(ns->user_ns); |
| 2645 | kfree(ns); | 2645 | kfree(ns); |
| 2646 | } | 2646 | } |
| @@ -2662,7 +2662,7 @@ static struct mnt_namespace *alloc_mnt_ns(struct user_namespace *user_ns) | |||
| 2662 | new_ns = kmalloc(sizeof(struct mnt_namespace), GFP_KERNEL); | 2662 | new_ns = kmalloc(sizeof(struct mnt_namespace), GFP_KERNEL); |
| 2663 | if (!new_ns) | 2663 | if (!new_ns) |
| 2664 | return ERR_PTR(-ENOMEM); | 2664 | return ERR_PTR(-ENOMEM); |
| 2665 | ret = proc_alloc_inum(&new_ns->proc_inum); | 2665 | ret = proc_alloc_inum(&new_ns->ns.inum); |
| 2666 | if (ret) { | 2666 | if (ret) { |
| 2667 | kfree(new_ns); | 2667 | kfree(new_ns); |
| 2668 | return ERR_PTR(ret); | 2668 | return ERR_PTR(ret); |
| @@ -3201,7 +3201,7 @@ static int mntns_install(struct nsproxy *nsproxy, void *ns) | |||
| 3201 | static unsigned int mntns_inum(void *ns) | 3201 | static unsigned int mntns_inum(void *ns) |
| 3202 | { | 3202 | { |
| 3203 | struct mnt_namespace *mnt_ns = ns; | 3203 | struct mnt_namespace *mnt_ns = ns; |
| 3204 | return mnt_ns->proc_inum; | 3204 | return mnt_ns->ns.inum; |
| 3205 | } | 3205 | } |
| 3206 | 3206 | ||
| 3207 | const struct proc_ns_operations mntns_operations = { | 3207 | const struct proc_ns_operations mntns_operations = { |
diff --git a/include/linux/ipc_namespace.h b/include/linux/ipc_namespace.h index 35e7eca4e33b..52a640128151 100644 --- a/include/linux/ipc_namespace.h +++ b/include/linux/ipc_namespace.h | |||
| @@ -6,6 +6,7 @@ | |||
| 6 | #include <linux/rwsem.h> | 6 | #include <linux/rwsem.h> |
| 7 | #include <linux/notifier.h> | 7 | #include <linux/notifier.h> |
| 8 | #include <linux/nsproxy.h> | 8 | #include <linux/nsproxy.h> |
| 9 | #include <linux/ns_common.h> | ||
| 9 | 10 | ||
| 10 | /* | 11 | /* |
| 11 | * ipc namespace events | 12 | * ipc namespace events |
| @@ -68,7 +69,7 @@ struct ipc_namespace { | |||
| 68 | /* user_ns which owns the ipc ns */ | 69 | /* user_ns which owns the ipc ns */ |
| 69 | struct user_namespace *user_ns; | 70 | struct user_namespace *user_ns; |
| 70 | 71 | ||
| 71 | unsigned int proc_inum; | 72 | struct ns_common ns; |
| 72 | }; | 73 | }; |
| 73 | 74 | ||
| 74 | extern struct ipc_namespace init_ipc_ns; | 75 | extern struct ipc_namespace init_ipc_ns; |
diff --git a/include/linux/ns_common.h b/include/linux/ns_common.h new file mode 100644 index 000000000000..e7db1cd54047 --- /dev/null +++ b/include/linux/ns_common.h | |||
| @@ -0,0 +1,8 @@ | |||
| 1 | #ifndef _LINUX_NS_COMMON_H | ||
| 2 | #define _LINUX_NS_COMMON_H | ||
| 3 | |||
| 4 | struct ns_common { | ||
| 5 | unsigned int inum; | ||
| 6 | }; | ||
| 7 | |||
| 8 | #endif | ||
diff --git a/include/linux/pid_namespace.h b/include/linux/pid_namespace.h index 1997ffc295a7..b9cf6c51b181 100644 --- a/include/linux/pid_namespace.h +++ b/include/linux/pid_namespace.h | |||
| @@ -8,6 +8,7 @@ | |||
| 8 | #include <linux/threads.h> | 8 | #include <linux/threads.h> |
| 9 | #include <linux/nsproxy.h> | 9 | #include <linux/nsproxy.h> |
| 10 | #include <linux/kref.h> | 10 | #include <linux/kref.h> |
| 11 | #include <linux/ns_common.h> | ||
| 11 | 12 | ||
| 12 | struct pidmap { | 13 | struct pidmap { |
| 13 | atomic_t nr_free; | 14 | atomic_t nr_free; |
| @@ -43,7 +44,7 @@ struct pid_namespace { | |||
| 43 | kgid_t pid_gid; | 44 | kgid_t pid_gid; |
| 44 | int hide_pid; | 45 | int hide_pid; |
| 45 | int reboot; /* group exit code if this pidns was rebooted */ | 46 | int reboot; /* group exit code if this pidns was rebooted */ |
| 46 | unsigned int proc_inum; | 47 | struct ns_common ns; |
| 47 | }; | 48 | }; |
| 48 | 49 | ||
| 49 | extern struct pid_namespace init_pid_ns; | 50 | extern struct pid_namespace init_pid_ns; |
diff --git a/include/linux/user_namespace.h b/include/linux/user_namespace.h index e95372654f09..4cf06c140e21 100644 --- a/include/linux/user_namespace.h +++ b/include/linux/user_namespace.h | |||
| @@ -3,6 +3,7 @@ | |||
| 3 | 3 | ||
| 4 | #include <linux/kref.h> | 4 | #include <linux/kref.h> |
| 5 | #include <linux/nsproxy.h> | 5 | #include <linux/nsproxy.h> |
| 6 | #include <linux/ns_common.h> | ||
| 6 | #include <linux/sched.h> | 7 | #include <linux/sched.h> |
| 7 | #include <linux/err.h> | 8 | #include <linux/err.h> |
| 8 | 9 | ||
| @@ -26,7 +27,7 @@ struct user_namespace { | |||
| 26 | int level; | 27 | int level; |
| 27 | kuid_t owner; | 28 | kuid_t owner; |
| 28 | kgid_t group; | 29 | kgid_t group; |
| 29 | unsigned int proc_inum; | 30 | struct ns_common ns; |
| 30 | 31 | ||
| 31 | /* Register of per-UID persistent keyrings for this namespace */ | 32 | /* Register of per-UID persistent keyrings for this namespace */ |
| 32 | #ifdef CONFIG_PERSISTENT_KEYRINGS | 33 | #ifdef CONFIG_PERSISTENT_KEYRINGS |
diff --git a/include/linux/utsname.h b/include/linux/utsname.h index 239e27733d6c..5093f58ae192 100644 --- a/include/linux/utsname.h +++ b/include/linux/utsname.h | |||
| @@ -5,6 +5,7 @@ | |||
| 5 | #include <linux/sched.h> | 5 | #include <linux/sched.h> |
| 6 | #include <linux/kref.h> | 6 | #include <linux/kref.h> |
| 7 | #include <linux/nsproxy.h> | 7 | #include <linux/nsproxy.h> |
| 8 | #include <linux/ns_common.h> | ||
| 8 | #include <linux/err.h> | 9 | #include <linux/err.h> |
| 9 | #include <uapi/linux/utsname.h> | 10 | #include <uapi/linux/utsname.h> |
| 10 | 11 | ||
| @@ -23,7 +24,7 @@ struct uts_namespace { | |||
| 23 | struct kref kref; | 24 | struct kref kref; |
| 24 | struct new_utsname name; | 25 | struct new_utsname name; |
| 25 | struct user_namespace *user_ns; | 26 | struct user_namespace *user_ns; |
| 26 | unsigned int proc_inum; | 27 | struct ns_common ns; |
| 27 | }; | 28 | }; |
| 28 | extern struct uts_namespace init_uts_ns; | 29 | extern struct uts_namespace init_uts_ns; |
| 29 | 30 | ||
diff --git a/include/net/net_namespace.h b/include/net/net_namespace.h index e0d64667a4b3..2e8756b8c775 100644 --- a/include/net/net_namespace.h +++ b/include/net/net_namespace.h | |||
| @@ -26,6 +26,7 @@ | |||
| 26 | #endif | 26 | #endif |
| 27 | #include <net/netns/nftables.h> | 27 | #include <net/netns/nftables.h> |
| 28 | #include <net/netns/xfrm.h> | 28 | #include <net/netns/xfrm.h> |
| 29 | #include <linux/ns_common.h> | ||
| 29 | 30 | ||
| 30 | struct user_namespace; | 31 | struct user_namespace; |
| 31 | struct proc_dir_entry; | 32 | struct proc_dir_entry; |
| @@ -60,7 +61,7 @@ struct net { | |||
| 60 | 61 | ||
| 61 | struct user_namespace *user_ns; /* Owning user namespace */ | 62 | struct user_namespace *user_ns; /* Owning user namespace */ |
| 62 | 63 | ||
| 63 | unsigned int proc_inum; | 64 | struct ns_common ns; |
| 64 | 65 | ||
| 65 | struct proc_dir_entry *proc_net; | 66 | struct proc_dir_entry *proc_net; |
| 66 | struct proc_dir_entry *proc_net_stat; | 67 | struct proc_dir_entry *proc_net_stat; |
diff --git a/init/version.c b/init/version.c index 1a4718e500fe..e23dbdabb26b 100644 --- a/init/version.c +++ b/init/version.c | |||
| @@ -35,7 +35,7 @@ struct uts_namespace init_uts_ns = { | |||
| 35 | .domainname = UTS_DOMAINNAME, | 35 | .domainname = UTS_DOMAINNAME, |
| 36 | }, | 36 | }, |
| 37 | .user_ns = &init_user_ns, | 37 | .user_ns = &init_user_ns, |
| 38 | .proc_inum = PROC_UTS_INIT_INO, | 38 | .ns.inum = PROC_UTS_INIT_INO, |
| 39 | }; | 39 | }; |
| 40 | EXPORT_SYMBOL_GPL(init_uts_ns); | 40 | EXPORT_SYMBOL_GPL(init_uts_ns); |
| 41 | 41 | ||
diff --git a/ipc/msgutil.c b/ipc/msgutil.c index 7e7095974d54..5930471a2902 100644 --- a/ipc/msgutil.c +++ b/ipc/msgutil.c | |||
| @@ -31,7 +31,7 @@ DEFINE_SPINLOCK(mq_lock); | |||
| 31 | struct ipc_namespace init_ipc_ns = { | 31 | struct ipc_namespace init_ipc_ns = { |
| 32 | .count = ATOMIC_INIT(1), | 32 | .count = ATOMIC_INIT(1), |
| 33 | .user_ns = &init_user_ns, | 33 | .user_ns = &init_user_ns, |
| 34 | .proc_inum = PROC_IPC_INIT_INO, | 34 | .ns.inum = PROC_IPC_INIT_INO, |
| 35 | }; | 35 | }; |
| 36 | 36 | ||
| 37 | atomic_t nr_ipc_ns = ATOMIC_INIT(1); | 37 | atomic_t nr_ipc_ns = ATOMIC_INIT(1); |
diff --git a/ipc/namespace.c b/ipc/namespace.c index b54468e48e32..177fa9db391d 100644 --- a/ipc/namespace.c +++ b/ipc/namespace.c | |||
| @@ -26,7 +26,7 @@ static struct ipc_namespace *create_ipc_ns(struct user_namespace *user_ns, | |||
| 26 | if (ns == NULL) | 26 | if (ns == NULL) |
| 27 | return ERR_PTR(-ENOMEM); | 27 | return ERR_PTR(-ENOMEM); |
| 28 | 28 | ||
| 29 | err = proc_alloc_inum(&ns->proc_inum); | 29 | err = proc_alloc_inum(&ns->ns.inum); |
| 30 | if (err) { | 30 | if (err) { |
| 31 | kfree(ns); | 31 | kfree(ns); |
| 32 | return ERR_PTR(err); | 32 | return ERR_PTR(err); |
| @@ -35,7 +35,7 @@ static struct ipc_namespace *create_ipc_ns(struct user_namespace *user_ns, | |||
| 35 | atomic_set(&ns->count, 1); | 35 | atomic_set(&ns->count, 1); |
| 36 | err = mq_init_ns(ns); | 36 | err = mq_init_ns(ns); |
| 37 | if (err) { | 37 | if (err) { |
| 38 | proc_free_inum(ns->proc_inum); | 38 | proc_free_inum(ns->ns.inum); |
| 39 | kfree(ns); | 39 | kfree(ns); |
| 40 | return ERR_PTR(err); | 40 | return ERR_PTR(err); |
| 41 | } | 41 | } |
| @@ -119,7 +119,7 @@ static void free_ipc_ns(struct ipc_namespace *ns) | |||
| 119 | */ | 119 | */ |
| 120 | ipcns_notify(IPCNS_REMOVED); | 120 | ipcns_notify(IPCNS_REMOVED); |
| 121 | put_user_ns(ns->user_ns); | 121 | put_user_ns(ns->user_ns); |
| 122 | proc_free_inum(ns->proc_inum); | 122 | proc_free_inum(ns->ns.inum); |
| 123 | kfree(ns); | 123 | kfree(ns); |
| 124 | } | 124 | } |
| 125 | 125 | ||
| @@ -186,7 +186,7 @@ static unsigned int ipcns_inum(void *vp) | |||
| 186 | { | 186 | { |
| 187 | struct ipc_namespace *ns = vp; | 187 | struct ipc_namespace *ns = vp; |
| 188 | 188 | ||
| 189 | return ns->proc_inum; | 189 | return ns->ns.inum; |
| 190 | } | 190 | } |
| 191 | 191 | ||
| 192 | const struct proc_ns_operations ipcns_operations = { | 192 | const struct proc_ns_operations ipcns_operations = { |
diff --git a/kernel/pid.c b/kernel/pid.c index 9b9a26698144..3650698cf1dc 100644 --- a/kernel/pid.c +++ b/kernel/pid.c | |||
| @@ -79,7 +79,7 @@ struct pid_namespace init_pid_ns = { | |||
| 79 | .level = 0, | 79 | .level = 0, |
| 80 | .child_reaper = &init_task, | 80 | .child_reaper = &init_task, |
| 81 | .user_ns = &init_user_ns, | 81 | .user_ns = &init_user_ns, |
| 82 | .proc_inum = PROC_PID_INIT_INO, | 82 | .ns.inum = PROC_PID_INIT_INO, |
| 83 | }; | 83 | }; |
| 84 | EXPORT_SYMBOL_GPL(init_pid_ns); | 84 | EXPORT_SYMBOL_GPL(init_pid_ns); |
| 85 | 85 | ||
diff --git a/kernel/pid_namespace.c b/kernel/pid_namespace.c index db95d8eb761b..99e27e5bf906 100644 --- a/kernel/pid_namespace.c +++ b/kernel/pid_namespace.c | |||
| @@ -105,7 +105,7 @@ static struct pid_namespace *create_pid_namespace(struct user_namespace *user_ns | |||
| 105 | if (ns->pid_cachep == NULL) | 105 | if (ns->pid_cachep == NULL) |
| 106 | goto out_free_map; | 106 | goto out_free_map; |
| 107 | 107 | ||
| 108 | err = proc_alloc_inum(&ns->proc_inum); | 108 | err = proc_alloc_inum(&ns->ns.inum); |
| 109 | if (err) | 109 | if (err) |
| 110 | goto out_free_map; | 110 | goto out_free_map; |
| 111 | 111 | ||
| @@ -142,7 +142,7 @@ static void destroy_pid_namespace(struct pid_namespace *ns) | |||
| 142 | { | 142 | { |
| 143 | int i; | 143 | int i; |
| 144 | 144 | ||
| 145 | proc_free_inum(ns->proc_inum); | 145 | proc_free_inum(ns->ns.inum); |
| 146 | for (i = 0; i < PIDMAP_ENTRIES; i++) | 146 | for (i = 0; i < PIDMAP_ENTRIES; i++) |
| 147 | kfree(ns->pidmap[i].page); | 147 | kfree(ns->pidmap[i].page); |
| 148 | put_user_ns(ns->user_ns); | 148 | put_user_ns(ns->user_ns); |
| @@ -365,7 +365,7 @@ static int pidns_install(struct nsproxy *nsproxy, void *ns) | |||
| 365 | static unsigned int pidns_inum(void *ns) | 365 | static unsigned int pidns_inum(void *ns) |
| 366 | { | 366 | { |
| 367 | struct pid_namespace *pid_ns = ns; | 367 | struct pid_namespace *pid_ns = ns; |
| 368 | return pid_ns->proc_inum; | 368 | return pid_ns->ns.inum; |
| 369 | } | 369 | } |
| 370 | 370 | ||
| 371 | const struct proc_ns_operations pidns_operations = { | 371 | const struct proc_ns_operations pidns_operations = { |
diff --git a/kernel/user.c b/kernel/user.c index 4efa39350e44..a7ca84bad8e6 100644 --- a/kernel/user.c +++ b/kernel/user.c | |||
| @@ -50,7 +50,7 @@ struct user_namespace init_user_ns = { | |||
| 50 | .count = ATOMIC_INIT(3), | 50 | .count = ATOMIC_INIT(3), |
| 51 | .owner = GLOBAL_ROOT_UID, | 51 | .owner = GLOBAL_ROOT_UID, |
| 52 | .group = GLOBAL_ROOT_GID, | 52 | .group = GLOBAL_ROOT_GID, |
| 53 | .proc_inum = PROC_USER_INIT_INO, | 53 | .ns.inum = PROC_USER_INIT_INO, |
| 54 | #ifdef CONFIG_PERSISTENT_KEYRINGS | 54 | #ifdef CONFIG_PERSISTENT_KEYRINGS |
| 55 | .persistent_keyring_register_sem = | 55 | .persistent_keyring_register_sem = |
| 56 | __RWSEM_INITIALIZER(init_user_ns.persistent_keyring_register_sem), | 56 | __RWSEM_INITIALIZER(init_user_ns.persistent_keyring_register_sem), |
diff --git a/kernel/user_namespace.c b/kernel/user_namespace.c index aa312b0dc3ec..fde584082673 100644 --- a/kernel/user_namespace.c +++ b/kernel/user_namespace.c | |||
| @@ -86,7 +86,7 @@ int create_user_ns(struct cred *new) | |||
| 86 | if (!ns) | 86 | if (!ns) |
| 87 | return -ENOMEM; | 87 | return -ENOMEM; |
| 88 | 88 | ||
| 89 | ret = proc_alloc_inum(&ns->proc_inum); | 89 | ret = proc_alloc_inum(&ns->ns.inum); |
| 90 | if (ret) { | 90 | if (ret) { |
| 91 | kmem_cache_free(user_ns_cachep, ns); | 91 | kmem_cache_free(user_ns_cachep, ns); |
| 92 | return ret; | 92 | return ret; |
| @@ -136,7 +136,7 @@ void free_user_ns(struct user_namespace *ns) | |||
| 136 | #ifdef CONFIG_PERSISTENT_KEYRINGS | 136 | #ifdef CONFIG_PERSISTENT_KEYRINGS |
| 137 | key_put(ns->persistent_keyring_register); | 137 | key_put(ns->persistent_keyring_register); |
| 138 | #endif | 138 | #endif |
| 139 | proc_free_inum(ns->proc_inum); | 139 | proc_free_inum(ns->ns.inum); |
| 140 | kmem_cache_free(user_ns_cachep, ns); | 140 | kmem_cache_free(user_ns_cachep, ns); |
| 141 | ns = parent; | 141 | ns = parent; |
| 142 | } while (atomic_dec_and_test(&parent->count)); | 142 | } while (atomic_dec_and_test(&parent->count)); |
| @@ -891,7 +891,7 @@ static int userns_install(struct nsproxy *nsproxy, void *ns) | |||
| 891 | static unsigned int userns_inum(void *ns) | 891 | static unsigned int userns_inum(void *ns) |
| 892 | { | 892 | { |
| 893 | struct user_namespace *user_ns = ns; | 893 | struct user_namespace *user_ns = ns; |
| 894 | return user_ns->proc_inum; | 894 | return user_ns->ns.inum; |
| 895 | } | 895 | } |
| 896 | 896 | ||
| 897 | const struct proc_ns_operations userns_operations = { | 897 | const struct proc_ns_operations userns_operations = { |
diff --git a/kernel/utsname.c b/kernel/utsname.c index 883aaaa7de8a..b1cd00b828f2 100644 --- a/kernel/utsname.c +++ b/kernel/utsname.c | |||
| @@ -42,7 +42,7 @@ static struct uts_namespace *clone_uts_ns(struct user_namespace *user_ns, | |||
| 42 | if (!ns) | 42 | if (!ns) |
| 43 | return ERR_PTR(-ENOMEM); | 43 | return ERR_PTR(-ENOMEM); |
| 44 | 44 | ||
| 45 | err = proc_alloc_inum(&ns->proc_inum); | 45 | err = proc_alloc_inum(&ns->ns.inum); |
| 46 | if (err) { | 46 | if (err) { |
| 47 | kfree(ns); | 47 | kfree(ns); |
| 48 | return ERR_PTR(err); | 48 | return ERR_PTR(err); |
| @@ -84,7 +84,7 @@ void free_uts_ns(struct kref *kref) | |||
| 84 | 84 | ||
| 85 | ns = container_of(kref, struct uts_namespace, kref); | 85 | ns = container_of(kref, struct uts_namespace, kref); |
| 86 | put_user_ns(ns->user_ns); | 86 | put_user_ns(ns->user_ns); |
| 87 | proc_free_inum(ns->proc_inum); | 87 | proc_free_inum(ns->ns.inum); |
| 88 | kfree(ns); | 88 | kfree(ns); |
| 89 | } | 89 | } |
| 90 | 90 | ||
| @@ -127,7 +127,7 @@ static unsigned int utsns_inum(void *vp) | |||
| 127 | { | 127 | { |
| 128 | struct uts_namespace *ns = vp; | 128 | struct uts_namespace *ns = vp; |
| 129 | 129 | ||
| 130 | return ns->proc_inum; | 130 | return ns->ns.inum; |
| 131 | } | 131 | } |
| 132 | 132 | ||
| 133 | const struct proc_ns_operations utsns_operations = { | 133 | const struct proc_ns_operations utsns_operations = { |
diff --git a/net/core/net_namespace.c b/net/core/net_namespace.c index 7f155175bba8..f2f756ce99d7 100644 --- a/net/core/net_namespace.c +++ b/net/core/net_namespace.c | |||
| @@ -386,12 +386,12 @@ EXPORT_SYMBOL_GPL(get_net_ns_by_pid); | |||
| 386 | 386 | ||
| 387 | static __net_init int net_ns_net_init(struct net *net) | 387 | static __net_init int net_ns_net_init(struct net *net) |
| 388 | { | 388 | { |
| 389 | return proc_alloc_inum(&net->proc_inum); | 389 | return proc_alloc_inum(&net->ns.inum); |
| 390 | } | 390 | } |
| 391 | 391 | ||
| 392 | static __net_exit void net_ns_net_exit(struct net *net) | 392 | static __net_exit void net_ns_net_exit(struct net *net) |
| 393 | { | 393 | { |
| 394 | proc_free_inum(net->proc_inum); | 394 | proc_free_inum(net->ns.inum); |
| 395 | } | 395 | } |
| 396 | 396 | ||
| 397 | static struct pernet_operations __net_initdata net_ns_ops = { | 397 | static struct pernet_operations __net_initdata net_ns_ops = { |
| @@ -664,7 +664,7 @@ static int netns_install(struct nsproxy *nsproxy, void *ns) | |||
| 664 | static unsigned int netns_inum(void *ns) | 664 | static unsigned int netns_inum(void *ns) |
| 665 | { | 665 | { |
| 666 | struct net *net = ns; | 666 | struct net *net = ns; |
| 667 | return net->proc_inum; | 667 | return net->ns.inum; |
| 668 | } | 668 | } |
| 669 | 669 | ||
| 670 | const struct proc_ns_operations netns_operations = { | 670 | const struct proc_ns_operations netns_operations = { |
