Skip to content

Commit

Permalink
sd-event: remove dead code and use _cleanup_
Browse files Browse the repository at this point in the history
CID #1393250.

(cherry picked from commit 8c75fe1)

Related: #2211358
  • Loading branch information
keszybz authored and dtardon committed Jun 15, 2023
1 parent 648fe00 commit a01ef6c
Showing 1 changed file with 9 additions and 21 deletions.
30 changes: 9 additions & 21 deletions src/libsystemd/sd-event/sd-event.c
Original file line number Diff line number Diff line change
Expand Up @@ -1129,6 +1129,7 @@ static void source_free(sd_event_source *s) {
free(s->description);
free(s);
}
DEFINE_TRIVIAL_CLEANUP_FUNC(sd_event_source*, source_free);

static int source_set_pending(sd_event_source *s, bool b) {
int r;
Expand Down Expand Up @@ -1993,11 +1994,10 @@ _public_ int sd_event_add_inotify(
sd_event_inotify_handler_t callback,
void *userdata) {

bool rm_inotify = false, rm_inode = false;
struct inotify_data *inotify_data = NULL;
struct inode_data *inode_data = NULL;
_cleanup_close_ int fd = -1;
sd_event_source *s;
_cleanup_(source_freep) sd_event_source *s = NULL;
struct stat st;
int r;

Expand Down Expand Up @@ -2035,13 +2035,13 @@ _public_ int sd_event_add_inotify(
/* Allocate an inotify object for this priority, and an inode object within it */
r = event_make_inotify_data(e, SD_EVENT_PRIORITY_NORMAL, &inotify_data);
if (r < 0)
goto fail;
rm_inotify = r > 0;
return r;

r = event_make_inode_data(e, inotify_data, st.st_dev, st.st_ino, &inode_data);
if (r < 0)
goto fail;
rm_inode = r > 0;
if (r < 0) {
event_free_inotify_data(e, inotify_data);
return r;
}

/* Keep the O_PATH fd around until the first iteration of the loop, so that we can still change the priority of
* the event source, until then, for which we need the original inode. */
Expand All @@ -2054,30 +2054,18 @@ _public_ int sd_event_add_inotify(
LIST_PREPEND(inotify.by_inode_data, inode_data->event_sources, s);
s->inotify.inode_data = inode_data;

rm_inode = rm_inotify = false;

/* Actually realize the watch now */
r = inode_data_realize_watch(e, inode_data);
if (r < 0)
goto fail;
return r;

(void) sd_event_source_set_description(s, path);

if (ret)
*ret = s;
TAKE_PTR(s);

return 0;

fail:
source_free(s);

if (rm_inode)
event_free_inode_data(e, inode_data);

if (rm_inotify)
event_free_inotify_data(e, inotify_data);

return r;
}

_public_ sd_event_source* sd_event_source_ref(sd_event_source *s) {
Expand Down

0 comments on commit a01ef6c

Please sign in to comment.