diff options
author | Amar Tumballi <amarts@redhat.com> | 2018-08-18 11:39:03 +0530 |
---|---|---|
committer | Niels de Vos <ndevos@redhat.com> | 2018-08-19 10:03:52 +0000 |
commit | fab6944206bf44e2260f20a9d5f1e785f933e705 (patch) | |
tree | 0eef23967b99436f0aab400b29a4c703a337d3d1 /libglusterfs/src/event-epoll.c | |
parent | 23e2a420f90c4d39386a0c0c2a8bea0e376ab070 (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.c | 15 |
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) |