diff options
author | Al Viro <viro@zeniv.linux.org.uk> | 2012-08-27 02:22:10 +0200 |
---|---|---|
committer | Al Viro <viro@zeniv.linux.org.uk> | 2012-09-27 03:10:03 +0200 |
commit | d6483b7a78438bc333560d11b69e6a6a6cf55940 (patch) | |
tree | 86111580d45c0d1cad04809c7f619b4d04107d1a /fs/open.c | |
parent | switch fallocate(2) to fget_light() (diff) | |
download | linux-d6483b7a78438bc333560d11b69e6a6a6cf55940.tar.xz linux-d6483b7a78438bc333560d11b69e6a6a6cf55940.zip |
switch fchmod(2) to fget_light()
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Diffstat (limited to 'fs/open.c')
-rw-r--r-- | fs/open.c | 12 |
1 files changed, 5 insertions, 7 deletions
diff --git a/fs/open.c b/fs/open.c index da6d3f1ac243..3c741eae6b99 100644 --- a/fs/open.c +++ b/fs/open.c @@ -582,23 +582,21 @@ SYSCALL_DEFINE3(lchown, const char __user *, filename, uid_t, user, gid_t, group SYSCALL_DEFINE3(fchown, unsigned int, fd, uid_t, user, gid_t, group) { - struct file * file; - int error = -EBADF; - struct dentry * dentry; + struct file *file; + int error = -EBADF, fput_needed; - file = fget(fd); + file = fget_light(fd, &fput_needed); if (!file) goto out; error = mnt_want_write_file(file); if (error) goto out_fput; - dentry = file->f_path.dentry; - audit_inode(NULL, dentry); + audit_inode(NULL, file->f_path.dentry); error = chown_common(&file->f_path, user, group); mnt_drop_write_file(file); out_fput: - fput(file); + fput_light(file, fput_needed); out: return error; } |