diff --git a/usr/tgtd.c b/usr/tgtd.c index 7e6853f5..069f3060 100644 --- a/usr/tgtd.c +++ b/usr/tgtd.c @@ -217,12 +217,13 @@ int tgt_event_add(int fd, int events, event_handler_t handler, void *data) memset(&ev, 0, sizeof(ev)); ev.events = events; ev.data.ptr = tev; + list_add(&tev->e_list, &tgt_events_list); err = epoll_ctl(ep_fd, EPOLL_CTL_ADD, fd, &ev); if (err) { eprintf("Cannot add fd, %m\n"); + list_del(&tev->e_list); free(tev); - } else - list_add(&tev->e_list, &tgt_events_list); + } return err; }