]> Pileus Git - ~andy/linux/blobdiff - drivers/usb/gadget/f_fs.c
Merge branch 'sched-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel...
[~andy/linux] / drivers / usb / gadget / f_fs.c
index f63dc6c150d2e4c80b3cdb9f1425c2f4bd4f9b8d..1cbba70836bcd7c1516c21253b3a54dd24a5849a 100644 (file)
@@ -2,7 +2,7 @@
  * f_fs.c -- user mode file system API for USB composite function controllers
  *
  * Copyright (C) 2010 Samsung Electronics
- * Author: Michal Nazarewicz <m.nazarewicz@samsung.com>
+ * Author: Michal Nazarewicz <mina86@mina86.com>
  *
  * Based on inode.c (GadgetFS) which was:
  * Copyright (C) 2003-2004 David Brownell
@@ -1063,13 +1063,9 @@ static int ffs_sb_fill(struct super_block *sb, void *_data, int silent)
                                  &simple_dir_operations,
                                  &simple_dir_inode_operations,
                                  &data->perms);
-       if (unlikely(!inode))
+       sb->s_root = d_make_root(inode);
+       if (unlikely(!sb->s_root))
                goto Enomem;
-       sb->s_root = d_alloc_root(inode);
-       if (unlikely(!sb->s_root)) {
-               iput(inode);
-               goto Enomem;
-       }
 
        /* EP0 file */
        if (unlikely(!ffs_sb_create_file(sb, "ep0", ffs,
@@ -1258,9 +1254,7 @@ static void ffs_data_put(struct ffs_data *ffs)
        if (unlikely(atomic_dec_and_test(&ffs->ref))) {
                pr_info("%s(): freeing\n", __func__);
                ffs_data_clear(ffs);
-               BUG_ON(mutex_is_locked(&ffs->mutex) ||
-                      spin_is_locked(&ffs->ev.waitq.lock) ||
-                      waitqueue_active(&ffs->ev.waitq) ||
+               BUG_ON(waitqueue_active(&ffs->ev.waitq) ||
                       waitqueue_active(&ffs->ep0req_completion.wait));
                kfree(ffs);
        }