Skip to content

Commit

Permalink
epoll: drop unnecessary test
Browse files Browse the repository at this point in the history
Thomas found that there is an unnecessary (always true) test in
ep_send_events().  The callback never inserts into ->rdllink while the
send loop is performed, and also does the ~EP_PRIVATE_BITS test.  Given
we're holding the mutex during this time, the conditions tested inside the
loop are always true.  This patch drops the test done inside the
re-insertion loop.

Signed-off-by: Davide Libenzi <[email protected]>
Cc: Thomas Gleixner <[email protected]>
Signed-off-by: Andrew Morton <[email protected]>
Signed-off-by: Linus Torvalds <[email protected]>
  • Loading branch information
davidel authored and torvalds committed Oct 16, 2008
1 parent 8b6e47a commit f337b9c
Showing 1 changed file with 3 additions and 6 deletions.
9 changes: 3 additions & 6 deletions fs/eventpoll.c
Original file line number Diff line number Diff line change
Expand Up @@ -927,14 +927,11 @@ static int ep_send_events(struct eventpoll *ep, struct epoll_event __user *event
/*
* During the time we spent in the loop above, some other events
* might have been queued by the poll callback. We re-insert them
* here (in case they are not already queued, or they're one-shot).
* inside the main ready-list here.
*/
for (nepi = ep->ovflist; (epi = nepi) != NULL;
nepi = epi->next, epi->next = EP_UNACTIVE_PTR) {
if (!ep_is_linked(&epi->rdllink) &&
(epi->event.events & ~EP_PRIVATE_BITS))
list_add_tail(&epi->rdllink, &ep->rdllist);
}
nepi = epi->next, epi->next = EP_UNACTIVE_PTR)
list_add_tail(&epi->rdllink, &ep->rdllist);
/*
* We need to set back ep->ovflist to EP_UNACTIVE_PTR, so that after
* releasing the lock, events will be queued in the normal way inside
Expand Down

0 comments on commit f337b9c

Please sign in to comment.