Browse Source

switch epoll_wait(2) to fget_light()

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Al Viro 13 years ago
parent
commit
5e196a9cf5
1 changed files with 3 additions and 3 deletions
  1. 3 3
      fs/eventpoll.c

+ 3 - 3
fs/eventpoll.c

@@ -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;