diff options
author | Al Viro <viro@zeniv.linux.org.uk> | 2012-03-17 02:17:32 -0400 |
---|---|---|
committer | Al Viro <viro@zeniv.linux.org.uk> | 2012-03-20 21:29:45 -0400 |
commit | 01e0fe0b10d8673554525984947cc5de21492462 (patch) | |
tree | 3f5633387be6fccb92085d4b20232854a57ed364 /drivers/usb/core/inode.c | |
parent | 2452992aa78315bf0f510620d22fae8ecb40a2eb (diff) | |
download | op-kernel-dev-01e0fe0b10d8673554525984947cc5de21492462.zip op-kernel-dev-01e0fe0b10d8673554525984947cc5de21492462.tar.gz |
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>
Diffstat (limited to 'drivers/usb/core/inode.c')
-rw-r--r-- | drivers/usb/core/inode.c | 10 |
1 files changed, 1 insertions, 9 deletions
diff --git a/drivers/usb/core/inode.c b/drivers/usb/core/inode.c index 06c175a..cefa0c8 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, |