projects
/
platform
/
adaptation
/
renesas_rcar
/
renesas_kernel.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
swap: change swap_list_head to plist, add swap_avail_head
[platform/adaptation/renesas_rcar/renesas_kernel.git]
/
fs
/
eventpoll.c
diff --git
a/fs/eventpoll.c
b/fs/eventpoll.c
index
af90312
..
f50d79e
100644
(file)
--- a/
fs/eventpoll.c
+++ b/
fs/eventpoll.c
@@
-910,7
+910,7
@@
static const struct file_operations eventpoll_fops = {
void eventpoll_release_file(struct file *file)
{
struct eventpoll *ep;
void eventpoll_release_file(struct file *file)
{
struct eventpoll *ep;
- struct epitem *epi;
+ struct epitem *epi
, *next
;
/*
* We don't want to get "file->f_lock" because it is not
/*
* We don't want to get "file->f_lock" because it is not
@@
-926,7
+926,7
@@
void eventpoll_release_file(struct file *file)
* Besides, ep_remove() acquires the lock, so we can't hold it here.
*/
mutex_lock(&epmutex);
* Besides, ep_remove() acquires the lock, so we can't hold it here.
*/
mutex_lock(&epmutex);
- list_for_each_entry_
rcu(epi
, &file->f_ep_links, fllink) {
+ list_for_each_entry_
safe(epi, next
, &file->f_ep_links, fllink) {
ep = epi->ep;
mutex_lock_nested(&ep->mtx, 0);
ep_remove(ep, epi);
ep = epi->ep;
mutex_lock_nested(&ep->mtx, 0);
ep_remove(ep, epi);
@@
-1852,7
+1852,8
@@
SYSCALL_DEFINE4(epoll_ctl, int, epfd, int, op, int, fd,
goto error_tgt_fput;
/* Check if EPOLLWAKEUP is allowed */
goto error_tgt_fput;
/* Check if EPOLLWAKEUP is allowed */
- ep_take_care_of_epollwakeup(&epds);
+ if (ep_op_has_event(op))
+ ep_take_care_of_epollwakeup(&epds);
/*
* We have to check that the file structure underneath the file descriptor
/*
* We have to check that the file structure underneath the file descriptor