epoll: Don't limit non-nested epoll paths

svn path=/dists/sid/linux-2.6/; revision=18859
This commit is contained in:
Ben Hutchings 2012-03-20 03:14:58 +00:00
parent 3e283a7c02
commit e9f13e1973
3 changed files with 44 additions and 0 deletions

1
debian/changelog vendored
View File

@ -20,6 +20,7 @@ linux-2.6 (3.2.12-1) UNRELEASED; urgency=low
* [s390] Ignore arch_pick_mmap_layout version change; it should not be
needed by modules (fixes FTBFS)
* [x86] Disable POHMELFS; this version is obsolete
* epoll: Don't limit non-nested epoll paths
[ Jonathan Nieder ]
* [x86] Enable RTS5139 as module (Closes: #663912)

View File

@ -0,0 +1,42 @@
From: Jason Baron <jbaron@redhat.com>
Date: Fri, 16 Mar 2012 16:34:03 -0400
Subject: [PATCH] Don't limit non-nested epoll paths
commit 93dc6107a76daed81c07f50215fa6ae77691634f upstream.
Commit 28d82dc1c4ed ("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>
---
fs/eventpoll.c | 4 ++++
1 files changed, 4 insertions(+), 0 deletions(-)
diff --git a/fs/eventpoll.c b/fs/eventpoll.c
index ea54cde..4d9d3a4 100644
--- a/fs/eventpoll.c
+++ b/fs/eventpoll.c
@@ -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;
--
1.7.9.1

View File

@ -81,3 +81,4 @@
+ features/all/fs-hardlink-creation-restrictions.patch
+ features/all/fs-hardlink-creation-restrictions-fix.patch
+ features/all/fs-hardlink-creation-restriction-cleanup.patch
+ bugfix/all/Don-t-limit-non-nested-epoll-paths.patch