summaryrefslogtreecommitdiffstats
path: root/libglusterfs/src/event-epoll.c
diff options
context:
space:
mode:
authorAmar Tumballi <amarts@redhat.com>2018-08-18 11:39:03 +0530
committerNiels de Vos <ndevos@redhat.com>2018-08-19 10:03:52 +0000
commitfab6944206bf44e2260f20a9d5f1e785f933e705 (patch)
tree0eef23967b99436f0aab400b29a4c703a337d3d1 /libglusterfs/src/event-epoll.c
parent23e2a420f90c4d39386a0c0c2a8bea0e376ab070 (diff)
coverity: libglusterfs issues
CID: 1391415, 1274122, 1274201, 1382408, 1382437, 1389436 1288798, 1288106, 1288110 updates: bz#789278 Change-Id: I48c7a50f22f5f4580310040c66463d9f7dd26204 Signed-off-by: Amar Tumballi <amarts@redhat.com>
Diffstat (limited to 'libglusterfs/src/event-epoll.c')
-rw-r--r--libglusterfs/src/event-epoll.c15
1 files changed, 11 insertions, 4 deletions
diff --git a/libglusterfs/src/event-epoll.c b/libglusterfs/src/event-epoll.c
index ed58899caa8..8ff66a8445f 100644
--- a/libglusterfs/src/event-epoll.c
+++ b/libglusterfs/src/event-epoll.c
@@ -212,18 +212,18 @@ event_slot_unref (struct event_pool *event_pool, struct event_slot_epoll *slot,
int do_close = 0;
ref = GF_ATOMIC_DEC (slot->ref);
+ if (ref)
+ /* slot still alive */
+ goto done;
LOCK (&slot->lock);
{
fd = slot->fd;
do_close = slot->do_close;
+ slot->do_close = 0;
}
UNLOCK (&slot->lock);
- if (ref)
- /* slot still alive */
- goto done;
-
event_slot_dealloc (event_pool, idx);
if (do_close)
@@ -580,6 +580,8 @@ event_dispatch_epoll_handler (struct event_pool *event_pool,
pre_unlock:
UNLOCK (&slot->lock);
+ ret = 0;
+
if (!handler)
goto out;
@@ -661,6 +663,11 @@ event_dispatch_epoll_worker (void *data)
continue;
ret = event_dispatch_epoll_handler (event_pool, &event);
+ if (ret) {
+ gf_msg ("epoll", GF_LOG_ERROR, 0,
+ LG_MSG_EXITED_EPOLL_THREAD,
+ "Failed to dispatch handler");
+ }
}
out:
if (ev_data)