diff --git a/[refs] b/[refs] index de7aa460e546..5416814ae3c1 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: cd6407fe220c5cf26c117457f5bcdfd6a81fbef8 +refs/heads/master: 332a2e1244bd08b9e3ecd378028513396a004a24 diff --git a/trunk/fs/open.c b/trunk/fs/open.c index d6c79a0dffc7..1540632d8387 100644 --- a/trunk/fs/open.c +++ b/trunk/fs/open.c @@ -397,10 +397,10 @@ SYSCALL_DEFINE1(fchdir, unsigned int, fd) { struct file *file; struct inode *inode; - int error; + int error, fput_needed; error = -EBADF; - file = fget(fd); + file = fget_raw_light(fd, &fput_needed); if (!file) goto out; @@ -414,7 +414,7 @@ SYSCALL_DEFINE1(fchdir, unsigned int, fd) if (!error) set_fs_pwd(current->fs, &file->f_path); out_putf: - fput(file); + fput_light(file, fput_needed); out: return error; }