diff options
Diffstat (limited to 'fs/utimes.c')
-rw-r--r-- | fs/utimes.c | 11 |
1 files changed, 5 insertions, 6 deletions
diff --git a/fs/utimes.c b/fs/utimes.c index fa4dbe451e27..bb0696a41735 100644 --- a/fs/utimes.c +++ b/fs/utimes.c | |||
@@ -140,19 +140,18 @@ long do_utimes(int dfd, const char __user *filename, struct timespec *times, | |||
140 | goto out; | 140 | goto out; |
141 | 141 | ||
142 | if (filename == NULL && dfd != AT_FDCWD) { | 142 | if (filename == NULL && dfd != AT_FDCWD) { |
143 | int fput_needed; | 143 | struct fd f; |
144 | struct file *file; | ||
145 | 144 | ||
146 | if (flags & AT_SYMLINK_NOFOLLOW) | 145 | if (flags & AT_SYMLINK_NOFOLLOW) |
147 | goto out; | 146 | goto out; |
148 | 147 | ||
149 | file = fget_light(dfd, &fput_needed); | 148 | f = fdget(dfd); |
150 | error = -EBADF; | 149 | error = -EBADF; |
151 | if (!file) | 150 | if (!f.file) |
152 | goto out; | 151 | goto out; |
153 | 152 | ||
154 | error = utimes_common(&file->f_path, times); | 153 | error = utimes_common(&f.file->f_path, times); |
155 | fput_light(file, fput_needed); | 154 | fdput(f); |
156 | } else { | 155 | } else { |
157 | struct path path; | 156 | struct path path; |
158 | int lookup_flags = 0; | 157 | int lookup_flags = 0; |