 +	if (!mnt->mnt_sb->s_type->name)
 +		return -EINVAL;
 +
++	tsk = current;
++
++#ifdef CONFIG_PID_NS
++	if (&init_pid_ns == task_active_pid_ns(tsk))
++		return 0;
++#endif
++
 +	if ((0 == strcmp("proc", mnt->mnt_sb->s_type->name)) ||
 +	    (0 == strcmp("sysfs", mnt->mnt_sb->s_type->name)) ||
 +	    (0 == strcmp("devtmpfs", mnt->mnt_sb->s_type->name)) ||
 +	    (0 == strcmp("devpts", mnt->mnt_sb->s_type->name))) {
-+		tsk = current;
 +		printk(KERN_ALERT "rlsd: denied unmount of %s from %lu (%s)\n",
 +		       mnt->mnt_sb->s_type->name,
 +		       (unsigned long) tsk->pid,

+
+#include <linux/security.h>
+#include <linux/sched.h>
+#include <linux/mount.h>
+#include <linux/fs.h>
+#include <linux/ptrace.h>

 obj-$(CONFIG_CGROUP_DEVICE)		+= device_cgroup.o
 
 # Object integrity file lists
diff -rupN linux-3.14.43-orig/security/rlsd/Kconfig linux-3.14.43/security/rlsd/Kconfig
--- linux-3.14.43-orig/security/rlsd/Kconfig	1970-01-01 02:00:00.000000000 +0200
+++ linux-3.14.43/security/rlsd/Kconfig	2015-05-23 23:55:13.754654980 +0300
@@ -0,0 +1,10 @@
+config SECURITY_RLSD
+	bool "RLSD support"
