Skip to content

Commit

Permalink
Don't limit non-nested epoll paths
Browse files Browse the repository at this point in the history
Commit 28d82dc ("epoll: limit paths") that I did to limit the
number of possible wakeup paths in epoll is causing a few applications
to longer work (dovecot for one).

The original patch is really about limiting the amount of epoll nesting
(since epoll fds can be attached to other fds). Thus, we probably can
allow an unlimited number of paths of depth 1. My current patch limits
it at 1000. And enforce the limits on paths that have a greater depth.

This is captured in: https://bugzilla.redhat.com/show_bug.cgi?id=681578

Signed-off-by: Jason Baron <jbaron@redhat.com>
Cc: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
  • Loading branch information
jibaron authored and torvalds committed Mar 18, 2012
1 parent c579bc7 commit 93dc610
Showing 1 changed file with 4 additions and 0 deletions.
4 changes: 4 additions & 0 deletions fs/eventpoll.c
Original file line number Diff line number Diff line change
Expand Up @@ -988,6 +988,10 @@ static int path_count[PATH_ARR_SIZE];

static int path_count_inc(int nests)
{
/* Allow an arbitrary number of depth 1 paths */
if (nests == 0)
return 0;

if (++path_count[nests] > path_limits[nests])
return -1;
return 0;
Expand Down

0 comments on commit 93dc610

Please sign in to comment.