Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 905ad269 authored by Al Viro's avatar Al Viro
Browse files

procfs: fix a vfsmount longterm reference leak



kern_mount() doesn't pair with plain mntput()...

Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
parent 09d9673d
Loading
Loading
Loading
Loading
+3 −5
Original line number Original line Diff line number Diff line
@@ -91,20 +91,18 @@ static struct file_system_type proc_fs_type = {


void __init proc_root_init(void)
void __init proc_root_init(void)
{
{
	struct vfsmount *mnt;
	int err;
	int err;


	proc_init_inodecache();
	proc_init_inodecache();
	err = register_filesystem(&proc_fs_type);
	err = register_filesystem(&proc_fs_type);
	if (err)
	if (err)
		return;
		return;
	mnt = kern_mount_data(&proc_fs_type, &init_pid_ns);
	err = pid_ns_prepare_proc(&init_pid_ns);
	if (IS_ERR(mnt)) {
	if (err) {
		unregister_filesystem(&proc_fs_type);
		unregister_filesystem(&proc_fs_type);
		return;
		return;
	}
	}


	init_pid_ns.proc_mnt = mnt;
	proc_symlink("mounts", NULL, "self/mounts");
	proc_symlink("mounts", NULL, "self/mounts");


	proc_net_init();
	proc_net_init();
@@ -209,5 +207,5 @@ int pid_ns_prepare_proc(struct pid_namespace *ns)


void pid_ns_release_proc(struct pid_namespace *ns)
void pid_ns_release_proc(struct pid_namespace *ns)
{
{
	mntput(ns->proc_mnt);
	kern_unmount(ns->proc_mnt);
}
}