Commit e31f0a57 authored by Al Viro's avatar Al Viro

procfs: make freeing proc_fs_info rcu-delayed

makes proc_pid_ns() safe from rcu pathwalk (put_pid_ns()
is still synchronous, but that's not a problem - it does
rcu-delay everything that needs to be)
Reviewed-by: default avatarChristian Brauner <brauner@kernel.org>
Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
parent 47458802
...@@ -271,7 +271,7 @@ static void proc_kill_sb(struct super_block *sb) ...@@ -271,7 +271,7 @@ static void proc_kill_sb(struct super_block *sb)
kill_anon_super(sb); kill_anon_super(sb);
put_pid_ns(fs_info->pid_ns); put_pid_ns(fs_info->pid_ns);
kfree(fs_info); kfree_rcu(fs_info, rcu);
} }
static struct file_system_type proc_fs_type = { static struct file_system_type proc_fs_type = {
......
...@@ -65,6 +65,7 @@ struct proc_fs_info { ...@@ -65,6 +65,7 @@ struct proc_fs_info {
kgid_t pid_gid; kgid_t pid_gid;
enum proc_hidepid hide_pid; enum proc_hidepid hide_pid;
enum proc_pidonly pidonly; enum proc_pidonly pidonly;
struct rcu_head rcu;
}; };
static inline struct proc_fs_info *proc_sb_info(struct super_block *sb) static inline struct proc_fs_info *proc_sb_info(struct super_block *sb)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment