aboutsummaryrefslogtreecommitdiffstats
path: root/fs
diff options
context:
space:
mode:
Diffstat (limited to 'fs')
-rw-r--r--fs/open.c11
1 files changed, 5 insertions, 6 deletions
diff --git a/fs/open.c b/fs/open.c
index 7931f76acc2b..8070825b285b 100644
--- a/fs/open.c
+++ b/fs/open.c
@@ -485,14 +485,13 @@ out_unlock:
485 485
486SYSCALL_DEFINE2(fchmod, unsigned int, fd, umode_t, mode) 486SYSCALL_DEFINE2(fchmod, unsigned int, fd, umode_t, mode)
487{ 487{
488 struct file * file; 488 struct fd f = fdget(fd);
489 int err = -EBADF; 489 int err = -EBADF;
490 490
491 file = fget(fd); 491 if (f.file) {
492 if (file) { 492 audit_inode(NULL, f.file->f_path.dentry, 0);
493 audit_inode(NULL, file->f_path.dentry, 0); 493 err = chmod_common(&f.file->f_path, mode);
494 err = chmod_common(&file->f_path, mode); 494 fdput(f);
495 fput(file);
496 } 495 }
497 return err; 496 return err;
498} 497}