[patch] epoll drop unnecessary test

Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]
From: Davide Libenzi
Date: Wednesday, October 1, 2008 - 11:41 am

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 <davidel@xmailserver.org>



- Davide


---
 fs/eventpoll.c |    9 +++------
 1 file changed, 3 insertions(+), 6 deletions(-)

Index: linux-2.6.mod/fs/eventpoll.c
===================================================================
--- linux-2.6.mod.orig/fs/eventpoll.c	2008-10-01 11:25:17.000000000 -0700
+++ linux-2.6.mod/fs/eventpoll.c	2008-10-01 11:26:58.000000000 -0700
@@ -927,14 +927,11 @@
 	/*
 	 * 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

--
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]

Messages in current thread:
[patch] epoll drop unnecessary test, Davide Libenzi, (Wed Oct 1, 11:41 am)