summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Tridgell <tridge@samba.org>2007-06-02 00:32:49 +0000
committerGerald (Jerry) Carter <jerry@samba.org>2007-10-10 14:53:10 -0500
commit67c5b022a4510b3cfcdfc2b486a63220b8f3eef0 (patch)
tree440795630ffd556408f884e61d9bbcc9567d967a
parent547f27daa2c6281c112031925e9d94f08723d58c (diff)
downloadsamba-67c5b022a4510b3cfcdfc2b486a63220b8f3eef0.tar.gz
samba-67c5b022a4510b3cfcdfc2b486a63220b8f3eef0.tar.bz2
samba-67c5b022a4510b3cfcdfc2b486a63220b8f3eef0.zip
r23301: merged from ctdb
(This used to be commit 76b981fcefb0dff24ac7d543da70fbb487ed7072)
-rw-r--r--source4/lib/events/events_aio.c2
-rw-r--r--source4/lib/events/events_epoll.c2
-rw-r--r--source4/lib/events/events_standard.c2
3 files changed, 6 insertions, 0 deletions
diff --git a/source4/lib/events/events_aio.c b/source4/lib/events/events_aio.c
index afc806a276..8cc100dede 100644
--- a/source4/lib/events/events_aio.c
+++ b/source4/lib/events/events_aio.c
@@ -393,6 +393,8 @@ static int aio_event_fd_destructor(struct fd_event *fde)
struct aio_event_context *aio_ev = talloc_get_type(ev->additional_data,
struct aio_event_context);
+ epoll_check_reopen(aio_ev);
+
aio_ev->num_fd_events--;
aio_ev->destruction_count++;
diff --git a/source4/lib/events/events_epoll.c b/source4/lib/events/events_epoll.c
index 9874377141..717ea94064 100644
--- a/source4/lib/events/events_epoll.c
+++ b/source4/lib/events/events_epoll.c
@@ -342,6 +342,8 @@ static int epoll_event_fd_destructor(struct fd_event *fde)
struct epoll_event_context *epoll_ev = talloc_get_type(ev->additional_data,
struct epoll_event_context);
+ epoll_check_reopen(epoll_ev);
+
epoll_ev->num_fd_events--;
epoll_ev->destruction_count++;
diff --git a/source4/lib/events/events_standard.c b/source4/lib/events/events_standard.c
index fd4b88008b..8761b12873 100644
--- a/source4/lib/events/events_standard.c
+++ b/source4/lib/events/events_standard.c
@@ -379,6 +379,8 @@ static int std_event_fd_destructor(struct fd_event *fde)
struct std_event_context *std_ev = talloc_get_type(ev->additional_data,
struct std_event_context);
+ epoll_check_reopen(std_ev);
+
if (std_ev->maxfd == fde->fd) {
std_ev->maxfd = EVENT_INVALID_MAXFD;
}