From e01095d0c6ca03a0c8d83e48023646b3d60a4be8 Mon Sep 17 00:00:00 2001 From: Per Hallsmark Date: Wed, 19 Jun 2019 15:46:39 +0200 Subject: [PATCH 1/2] Make directory inodes in /proc/net adhere to net namespace This patch fixes /proc/net directory inodes in similar way as commit 1fde6f21d90f ("proc: fix /proc/net/* after setns(2)") fixes file inodes. Signed-off-by: Per Hallsmark --- fs/proc/proc_net.c | 14 ++++++++++++++ include/linux/proc_fs.h | 7 ++----- 2 files changed, 16 insertions(+), 5 deletions(-) diff --git a/fs/proc/proc_net.c b/fs/proc/proc_net.c index 76ae278df1c4..c73cf5637b9d 100644 --- a/fs/proc/proc_net.c +++ b/fs/proc/proc_net.c @@ -55,6 +55,20 @@ static void pde_force_lookup(struct proc_dir_entry *pde) pde->proc_dops = &proc_net_dentry_ops; } +struct proc_dir_entry *proc_net_mkdir(struct net *net, const char *name, + struct proc_dir_entry *parent) +{ + struct proc_dir_entry *pde; + + pde = proc_mkdir_data(name, 0, parent, net); + if (!pde) + return NULL; + pde->proc_dops = &proc_net_dentry_ops; + + return pde; +} +EXPORT_SYMBOL(proc_net_mkdir); + static int seq_open_net(struct inode *inode, struct file *file) { unsigned int state_size = PDE(inode)->state_size; diff --git a/include/linux/proc_fs.h b/include/linux/proc_fs.h index 52a283ba0465..608b8a10e338 100644 --- a/include/linux/proc_fs.h +++ b/include/linux/proc_fs.h @@ -124,11 +124,8 @@ static inline struct pid *tgid_pidfd_to_pid(const struct file *file) struct net; -static inline struct proc_dir_entry *proc_net_mkdir( - struct net *net, const char *name, struct proc_dir_entry *parent) -{ - return proc_mkdir_data(name, 0, parent, net); -} +extern struct proc_dir_entry *proc_net_mkdir( + struct net *net, const char *name, struct proc_dir_entry *parent); struct ns_common; int open_related_ns(struct ns_common *ns, -- 2.20.1