Commit 5e196a9c authored by Al Viro's avatar Al Viro

switch epoll_wait(2) to fget_light()

Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
parent ecd18815
...@@ -1809,7 +1809,7 @@ SYSCALL_DEFINE4(epoll_ctl, int, epfd, int, op, int, fd, ...@@ -1809,7 +1809,7 @@ SYSCALL_DEFINE4(epoll_ctl, int, epfd, int, op, int, fd,
SYSCALL_DEFINE4(epoll_wait, int, epfd, struct epoll_event __user *, events, SYSCALL_DEFINE4(epoll_wait, int, epfd, struct epoll_event __user *, events,
int, maxevents, int, timeout) int, maxevents, int, timeout)
{ {
int error; int error, fput_needed;
struct file *file; struct file *file;
struct eventpoll *ep; struct eventpoll *ep;
...@@ -1825,7 +1825,7 @@ SYSCALL_DEFINE4(epoll_wait, int, epfd, struct epoll_event __user *, events, ...@@ -1825,7 +1825,7 @@ SYSCALL_DEFINE4(epoll_wait, int, epfd, struct epoll_event __user *, events,
/* Get the "struct file *" for the eventpoll file */ /* Get the "struct file *" for the eventpoll file */
error = -EBADF; error = -EBADF;
file = fget(epfd); file = fget_light(epfd, &fput_needed);
if (!file) if (!file)
goto error_return; goto error_return;
...@@ -1847,7 +1847,7 @@ SYSCALL_DEFINE4(epoll_wait, int, epfd, struct epoll_event __user *, events, ...@@ -1847,7 +1847,7 @@ SYSCALL_DEFINE4(epoll_wait, int, epfd, struct epoll_event __user *, events,
error = ep_poll(ep, events, maxevents, timeout); error = ep_poll(ep, events, maxevents, timeout);
error_fput: error_fput:
fput(file); fput_light(file, fput_needed);
error_return: error_return:
return error; return error;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment