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 <normalperson@xxxxxxxx> Cc: Davide Libenzi <davidel@xxxxxxxxxxxxxxx> Cc: Al Viro <viro@xxxxxxxxxxxxxxxxxx> Cc: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> --- 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-fsdevel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html