switch epoll_wait(2) to fget_light()

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
This commit is contained in:
Al Viro 2012-08-26 21:27:40 -04:00
parent ecd188159e
commit 5e196a9cf5

View File

@ -1809,7 +1809,7 @@ error_return:
SYSCALL_DEFINE4(epoll_wait, int, epfd, struct epoll_event __user *, events,
int, maxevents, int, timeout)
{
int error;
int error, fput_needed;
struct file *file;
struct eventpoll *ep;
@ -1825,7 +1825,7 @@ SYSCALL_DEFINE4(epoll_wait, int, epfd, struct epoll_event __user *, events,
/* Get the "struct file *" for the eventpoll file */
error = -EBADF;
file = fget(epfd);
file = fget_light(epfd, &fput_needed);
if (!file)
goto error_return;
@ -1847,7 +1847,7 @@ SYSCALL_DEFINE4(epoll_wait, int, epfd, struct epoll_event __user *, events,
error = ep_poll(ep, events, maxevents, timeout);
error_fput:
fput(file);
fput_light(file, fput_needed);
error_return:
return error;