The non-blocking ep_poll path optimization introduced skipping over the return value setup. Initialize it properly, my userspace gets upset by epoll_wait() returning random things. In addition, remove the reinitialization at the fetch_events label, the return value is garuanteed to be zero when execution reaches there. Signed-off-by: Johannes Weiner <hannes@xxxxxxxxxxx> Cc: Shawn Bohrer <shawn.bohrer@xxxxxxxxx> Cc: Davide Libenzi <davidel@xxxxxxxxxxxxxxx> --- fs/eventpoll.c | 3 +-- 1 files changed, 1 insertions(+), 2 deletions(-) diff --git a/fs/eventpoll.c b/fs/eventpoll.c index f7cb6cb..afe4238 100644 --- a/fs/eventpoll.c +++ b/fs/eventpoll.c @@ -1147,7 +1147,7 @@ static int ep_send_events(struct eventpoll *ep, static int ep_poll(struct eventpoll *ep, struct epoll_event __user *events, int maxevents, long timeout) { - int res, eavail, timed_out = 0; + int res = 0, eavail, timed_out = 0; unsigned long flags; long slack = 0; wait_queue_t wait; @@ -1173,7 +1173,6 @@ static int ep_poll(struct eventpoll *ep, struct epoll_event __user *events, fetch_events: spin_lock_irqsave(&ep->lock, flags); - res = 0; if (!ep_events_available(ep)) { /* * We don't have any available event to return to the caller. -- 1.7.3.5 -- 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