diff options
Diffstat (limited to 'fs/sync.c')
-rw-r--r-- | fs/sync.c | 5 |
1 files changed, 3 insertions, 2 deletions
@@ -188,11 +188,12 @@ static int do_fsync(unsigned int fd, int datasync) | |||
188 | { | 188 | { |
189 | struct file *file; | 189 | struct file *file; |
190 | int ret = -EBADF; | 190 | int ret = -EBADF; |
191 | int fput_needed; | ||
191 | 192 | ||
192 | file = fget(fd); | 193 | file = fget_light(fd, &fput_needed); |
193 | if (file) { | 194 | if (file) { |
194 | ret = vfs_fsync(file, datasync); | 195 | ret = vfs_fsync(file, datasync); |
195 | fput(file); | 196 | fput_light(file, fput_needed); |
196 | } | 197 | } |
197 | return ret; | 198 | return ret; |
198 | } | 199 | } |