]> git.proxmox.com Git - mirror_ubuntu-hirsute-kernel.git/commitdiff
gadgetfs: clean up
authorAl Viro <viro@zeniv.linux.org.uk>
Sun, 22 Jul 2012 17:23:33 +0000 (21:23 +0400)
committerAl Viro <viro@zeniv.linux.org.uk>
Sun, 29 Jul 2012 17:24:21 +0000 (21:24 +0400)
sigh...
* opened files have non-NULL dentries and non-NULL inodes
* close_filp() needs current->files only if the file had been
in descriptor table.

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
drivers/usb/gadget/storage_common.c
drivers/usb/gadget/u_uac1.c

index 8081ca3a70a231272532f75de1101bdebaebccd0..f92943246820fb302f82204bdd120b42228c5a09 100644 (file)
@@ -654,9 +654,8 @@ static int fsg_lun_open(struct fsg_lun *curlun, const char *filename)
        if (!(filp->f_mode & FMODE_WRITE))
                ro = 1;
 
-       if (filp->f_path.dentry)
-               inode = filp->f_path.dentry->d_inode;
-       if (!inode || (!S_ISREG(inode->i_mode) && !S_ISBLK(inode->i_mode))) {
+       inode = filp->f_path.dentry->d_inode;
+       if ((!S_ISREG(inode->i_mode) && !S_ISBLK(inode->i_mode))) {
                LINFO(curlun, "invalid file type: %s\n", filename);
                goto out;
        }
@@ -665,7 +664,7 @@ static int fsg_lun_open(struct fsg_lun *curlun, const char *filename)
         * If we can't read the file, it's no good.
         * If we can't write the file, use it read-only.
         */
-       if (!filp->f_op || !(filp->f_op->read || filp->f_op->aio_read)) {
+       if (!(filp->f_op->read || filp->f_op->aio_read)) {
                LINFO(curlun, "file not readable: %s\n", filename);
                goto out;
        }
@@ -707,16 +706,15 @@ static int fsg_lun_open(struct fsg_lun *curlun, const char *filename)
                goto out;
        }
 
-       get_file(filp);
        curlun->ro = ro;
        curlun->filp = filp;
        curlun->file_length = size;
        curlun->num_sectors = num_sectors;
        LDBG(curlun, "open backing file: %s\n", filename);
-       rc = 0;
+       return 0;
 
 out:
-       filp_close(filp, current->files);
+       fput(filp);
        return rc;
 }
 
index af989898205989ca46e443b6e8d496d9c8ba459b..e0c5e88e03ed30dc02c533d0eae3a41b94bcb00b 100644 (file)
@@ -275,17 +275,17 @@ static int gaudio_close_snd_dev(struct gaudio *gau)
        /* Close control device */
        snd = &gau->control;
        if (snd->filp)
-               filp_close(snd->filp, current->files);
+               filp_close(snd->filp, NULL);
 
        /* Close PCM playback device and setup substream */
        snd = &gau->playback;
        if (snd->filp)
-               filp_close(snd->filp, current->files);
+               filp_close(snd->filp, NULL);
 
        /* Close PCM capture device and setup substream */
        snd = &gau->capture;
        if (snd->filp)
-               filp_close(snd->filp, current->files);
+               filp_close(snd->filp, NULL);
 
        return 0;
 }