Patchwork [1/6] epoll: drop unnecessary test

login
register
mail settings
Submitter Paolo Pisati
Date Oct. 26, 2011, 3:26 p.m.
Message ID <1319642765-9333-2-git-send-email-paolo.pisati@canonical.com>
Download mbox | patch
Permalink /patch/121927/
State New
Headers show

Comments

Paolo Pisati - Oct. 26, 2011, 3:26 p.m.
From: Davide Libenzi <davidel@xmailserver.org>

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>
Cc: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
(cherry picked from commit f337b9c58332bdecde965b436e47ea4c94d30da0)

Signed-off-by: Paolo Pisati <paolo.pisati@canonical.com>
---
 fs/eventpoll.c |    9 +++------
 1 files changed, 3 insertions(+), 6 deletions(-)

Patch

diff --git a/fs/eventpoll.c b/fs/eventpoll.c
index 0a98389..0e73172 100644
--- a/fs/eventpoll.c
+++ b/fs/eventpoll.c
@@ -950,14 +950,11 @@  errxit:
 	/*
 	 * 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