diff options
Diffstat (limited to 'fs/timerfd.c')
-rw-r--r-- | fs/timerfd.c | 12 |
1 files changed, 4 insertions, 8 deletions
diff --git a/fs/timerfd.c b/fs/timerfd.c index 10c80b59ec4b..d87d354ec424 100644 --- a/fs/timerfd.c +++ b/fs/timerfd.c | |||
@@ -20,6 +20,7 @@ | |||
20 | #include <linux/hrtimer.h> | 20 | #include <linux/hrtimer.h> |
21 | #include <linux/anon_inodes.h> | 21 | #include <linux/anon_inodes.h> |
22 | #include <linux/timerfd.h> | 22 | #include <linux/timerfd.h> |
23 | #include <linux/syscalls.h> | ||
23 | 24 | ||
24 | struct timerfd_ctx { | 25 | struct timerfd_ctx { |
25 | struct hrtimer tmr; | 26 | struct hrtimer tmr; |
@@ -180,10 +181,8 @@ static struct file *timerfd_fget(int fd) | |||
180 | 181 | ||
181 | asmlinkage long sys_timerfd_create(int clockid, int flags) | 182 | asmlinkage long sys_timerfd_create(int clockid, int flags) |
182 | { | 183 | { |
183 | int error, ufd; | 184 | int ufd; |
184 | struct timerfd_ctx *ctx; | 185 | struct timerfd_ctx *ctx; |
185 | struct file *file; | ||
186 | struct inode *inode; | ||
187 | 186 | ||
188 | if (flags) | 187 | if (flags) |
189 | return -EINVAL; | 188 | return -EINVAL; |
@@ -199,12 +198,9 @@ asmlinkage long sys_timerfd_create(int clockid, int flags) | |||
199 | ctx->clockid = clockid; | 198 | ctx->clockid = clockid; |
200 | hrtimer_init(&ctx->tmr, clockid, HRTIMER_MODE_ABS); | 199 | hrtimer_init(&ctx->tmr, clockid, HRTIMER_MODE_ABS); |
201 | 200 | ||
202 | error = anon_inode_getfd(&ufd, &inode, &file, "[timerfd]", | 201 | ufd = anon_inode_getfd("[timerfd]", &timerfd_fops, ctx); |
203 | &timerfd_fops, ctx); | 202 | if (ufd < 0) |
204 | if (error) { | ||
205 | kfree(ctx); | 203 | kfree(ctx); |
206 | return error; | ||
207 | } | ||
208 | 204 | ||
209 | return ufd; | 205 | return ufd; |
210 | } | 206 | } |