Events arriving in ovflist are stored in LIFO order, so we should account for that when inserting them into rddlist.
Signed-off-by: Eric Wong <normalper...@yhbt.net> Cc: Davide Libenzi <davi...@xmailserver.org> Cc: Al Viro <v...@zeniv.linux.org.uk> Cc: Andrew Morton <a...@linux-foundation.org> --- I think this can lead to starvation in some rare cases, but I have not been able to trigger it. The window for ovflist insertion is tiny. fs/eventpoll.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fs/eventpoll.c b/fs/eventpoll.c index 9fec183..5a1a596 100644 --- a/fs/eventpoll.c +++ b/fs/eventpoll.c @@ -598,7 +598,7 @@ static int ep_scan_ready_list(struct eventpoll *ep, * contain them, and the list_splice() below takes care of them. */ if (!ep_is_linked(&epi->rdllink)) { - list_add_tail(&epi->rdllink, &ep->rdllist); + list_add(&epi->rdllink, &ep->rdllist); __pm_stay_awake(epi->ws); } } -- Eric Wong -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/