From 2292120ffd2730a20fd2750a605952982f031c83 Mon Sep 17 00:00:00 2001 From: Roman Penyaev Date: Tue, 19 Mar 2019 11:55:52 +0100 Subject: [PATCH] EventEpoll: refactor del_event() a bit The main purpose of the patch is to set 'ee' members only on EPOLL_CTL_MOD path, deletion path does not requie any of the members set. This will make code a bit better. Signed-off-by: Roman Penyaev --- src/msg/async/EventEpoll.cc | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/src/msg/async/EventEpoll.cc b/src/msg/async/EventEpoll.cc index 7cc179a65d0..e7b4ac44981 100644 --- a/src/msg/async/EventEpoll.cc +++ b/src/msg/async/EventEpoll.cc @@ -83,16 +83,18 @@ int EpollDriver::del_event(int fd, int cur_mask, int delmask) { ldout(cct, 20) << __func__ << " del event fd=" << fd << " cur_mask=" << cur_mask << " delmask=" << delmask << " to " << epfd << dendl; - struct epoll_event ee; + struct epoll_event ee = {0}; int mask = cur_mask & (~delmask); int r = 0; - ee.events = EPOLLET; - if (mask & EVENT_READABLE) ee.events |= EPOLLIN; - if (mask & EVENT_WRITABLE) ee.events |= EPOLLOUT; - ee.data.u64 = 0; /* avoid valgrind warning */ - ee.data.fd = fd; if (mask != EVENT_NONE) { + ee.events = EPOLLET; + ee.data.fd = fd; + if (mask & EVENT_READABLE) + ee.events |= EPOLLIN; + if (mask & EVENT_WRITABLE) + ee.events |= EPOLLOUT; + if ((r = epoll_ctl(epfd, EPOLL_CTL_MOD, fd, &ee)) < 0) { lderr(cct) << __func__ << " epoll_ctl: modify fd=" << fd << " mask=" << mask << " failed." << cpp_strerror(errno) << dendl; -- 2.39.5