From 356c26cc3b8b653618638654d2037719a11d95b6 Mon Sep 17 00:00:00 2001 From: neilbrown Date: Sun, 26 Mar 2006 23:51:21 +0000 Subject: [PATCH] Don't close file descriptor until after calling event_del(). Delete event processing for a file descriptor before closing it. This was causing hangs when used in combination with libevent-1.0b. --- ChangeLog | 6 ++++++ utils/idmapd/idmapd.c | 4 ++-- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/ChangeLog b/ChangeLog index 4836d5f..b24b46c 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2006-03-27 Kevin Coffman + Don't close file descriptor until after calling event_del(). + + Delete event processing for a file descriptor before closing it. + This was causing hangs when used in combination with libevent-1.0b. + 2006-03-27 kwc@citi.umich.edu Find krb5-config on SuSE 10 diff --git a/utils/idmapd/idmapd.c b/utils/idmapd/idmapd.c index 73c30b9..69396af 100644 --- a/utils/idmapd/idmapd.c +++ b/utils/idmapd/idmapd.c @@ -688,10 +688,10 @@ nfsdreopen_one(struct idmap_client *ic) idmapd_warnx("ReOpening %s", ic->ic_path); if ((fd = open(ic->ic_path, O_RDWR, 0)) != -1) { - if (ic->ic_fd != -1) - close(ic->ic_fd); if ((ic->ic_event.ev_flags & EVLIST_INIT)) event_del(&ic->ic_event); + if (ic->ic_fd != -1) + close(ic->ic_fd); ic->ic_event.ev_fd = ic->ic_fd = fd; event_set(&ic->ic_event, ic->ic_fd, EV_READ, nfsdcb, ic); -- 2.39.2