Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
SYSCALL_DEFINE2(fchmod, unsigned int, fd, umode_t, mode)
{
SYSCALL_DEFINE2(fchmod, unsigned int, fd, umode_t, mode)
{
+ struct fd f = fdget(fd);
- 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);