+From: Vasiliy Kulikov <segoon@openwall.com>
+Date: Fri, 23 Mar 2012 20:56:42 +0400
+Subject: [PATCH] proc: fix mount -t proc -o AAA
+
+proc_parse_options() inside of proc_mount() runs only once at the boot
+time without any given options. So, following umount(2)+mount(2) ignore
+mount options: proc_parse_options() is not called as ->s_root is already
+initialized. To fix that parse mount options unconditionally.
+
+Signed-off-by: Vasiliy Kulikov <segoon@openwall.com>
+Reported-by: Arkadiusz Miśkiewicz <a.miskiewicz@gmail.com>
+---
+ fs/proc/root.c | 9 +++++----
+ 1 files changed, 5 insertions(+), 4 deletions(-)
+
+diff --git a/fs/proc/root.c b/fs/proc/root.c
+index 46a15d8..eed44bf 100644
+--- a/fs/proc/root.c
++++ b/fs/proc/root.c
+@@ -115,12 +115,13 @@ static struct dentry *proc_mount(struct file_system_type *fs_type,
+ if (IS_ERR(sb))
+ return ERR_CAST(sb);
+
++ if (!proc_parse_options(options, ns)) {
++ deactivate_locked_super(sb);
++ return ERR_PTR(-EINVAL);
++ }
++
+ if (!sb->s_root) {
+ sb->s_flags = flags;
+- if (!proc_parse_options(options, ns)) {
+- deactivate_locked_super(sb);
+- return ERR_PTR(-EINVAL);
+- }
+ err = proc_fill_super(sb);
+ if (err) {
+ deactivate_locked_super(sb);
+--
+1.7.0.4
+