switch epoll_wait(2) to fget_light()
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
This commit is contained in:
parent
ecd188159e
commit
5e196a9cf5
1 changed files with 3 additions and 3 deletions
|
@ -1809,7 +1809,7 @@ error_return:
|
||||||
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,
|
||||||
|
|
||||||
/* 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,
|
||||||
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;
|
||||||
|
|
Loading…
Add table
Reference in a new issue