switch fchmod() to fdget
authorAl Viro <viro@zeniv.linux.org.uk>
Fri, 30 Aug 2013 16:48:53 +0000 (12:48 -0400)
committerAl Viro <viro@zeniv.linux.org.uk>
Wed, 4 Sep 2013 03:04:45 +0000 (23:04 -0400)
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
fs/open.c

index 7931f76..8070825 100644 (file)
--- a/fs/open.c
+++ b/fs/open.c
@@ -485,14 +485,13 @@ out_unlock:
 
 SYSCALL_DEFINE2(fchmod, unsigned int, fd, umode_t, mode)
 {
-       struct file * file;
+       struct fd f = fdget(fd);
        int err = -EBADF;
 
-       file = fget(fd);
-       if (file) {
-               audit_inode(NULL, file->f_path.dentry, 0);
-               err = chmod_common(&file->f_path, mode);
-               fput(file);
+       if (f.file) {
+               audit_inode(NULL, f.file->f_path.dentry, 0);
+               err = chmod_common(&f.file->f_path, mode);
+               fdput(f);
        }
        return err;
 }