Skip to content

Commit

Permalink
usbfs: kill racy detection of simple_pin_fs()
Browse files Browse the repository at this point in the history
can check MS_KERNMOUNT in flags now

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
  • Loading branch information
Al Viro committed Mar 21, 2012
1 parent 2452992 commit 01e0fe0
Showing 1 changed file with 1 addition and 9 deletions.
10 changes: 1 addition & 9 deletions drivers/usb/core/inode.c
Original file line number Diff line number Diff line change
Expand Up @@ -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 */
Expand Down Expand Up @@ -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)) {
Expand Down Expand Up @@ -582,20 +581,13 @@ 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) {
printk(KERN_ERR "Unable to get usbfs mount\n");
goto exit;
}

ignore_mount = 0;

parent = usbfs_mount->mnt_root;
devices_usbfs_dentry = fs_create_file ("devices",
listmode | S_IFREG, parent,
Expand Down

0 comments on commit 01e0fe0

Please sign in to comment.