From: Al Viro <viro@zeniv.linux.org.uk>
Date: Sat, 17 Mar 2012 06:17:32 +0000 (-0400)
Subject: usbfs: kill racy detection of simple_pin_fs()
X-Git-Url: https://git.stricted.de/?a=commitdiff_plain;h=01e0fe0b10d8673554525984947cc5de21492462;p=GitHub%2Fexynos8895%2Fandroid_kernel_samsung_universal8895.git

usbfs: kill racy detection of simple_pin_fs()

can check MS_KERNMOUNT in flags now

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
---

diff --git a/drivers/usb/core/inode.c b/drivers/usb/core/inode.c
index 06c175aee6a3..cefa0c8b5b6a 100644
--- a/drivers/usb/core/inode.c
+++ b/drivers/usb/core/inode.c
@@ -50,7 +50,6 @@
 static const struct file_operations default_file_operations;
 static struct vfsmount *usbfs_mount;
 static int usbfs_mount_count;	/* = 0 */
-static int ignore_mount = 0;
 
 static struct dentry *devices_usbfs_dentry;
 static int num_buses;	/* = 0 */
@@ -256,7 +255,7 @@ static int remount(struct super_block *sb, int *flags, char *data)
 	 * i.e. it's a simple_pin_fs from create_special_files,
 	 * then ignore it.
 	 */
-	if (ignore_mount)
+	if (*flags & MS_KERNMOUNT)
 		return 0;
 
 	if (parse_options(sb, data)) {
@@ -582,11 +581,6 @@ static int create_special_files (void)
 	struct dentry *parent;
 	int retval;
 
-	/* the simple_pin_fs calls will call remount with no options
-	 * without this flag that would overwrite the real mount options (if any)
-	 */
-	ignore_mount = 1;
-
 	/* create the devices special file */
 	retval = simple_pin_fs(&usb_fs_type, &usbfs_mount, &usbfs_mount_count);
 	if (retval) {
@@ -594,8 +588,6 @@ static int create_special_files (void)
 		goto exit;
 	}
 
-	ignore_mount = 0;
-
 	parent = usbfs_mount->mnt_root;
 	devices_usbfs_dentry = fs_create_file ("devices",
 					       listmode | S_IFREG, parent,