You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
92 lines
3.0 KiB
92 lines
3.0 KiB
From 7bbad13204b3c0870caa80e738d5d5ca39e956c9 Mon Sep 17 00:00:00 2001
|
|
From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= <zbyszek@in.waw.pl>
|
|
Date: Tue, 25 Sep 2018 11:10:12 +0200
|
|
Subject: [PATCH] sd-event: remove dead code and use _cleanup_
|
|
|
|
CID #1393250.
|
|
|
|
(cherry picked from commit 8c75fe1765341b538ddded29be6f98e1619f1996)
|
|
|
|
Related: #2211358
|
|
---
|
|
src/libsystemd/sd-event/sd-event.c | 30 +++++++++---------------------
|
|
1 file changed, 9 insertions(+), 21 deletions(-)
|
|
|
|
diff --git a/src/libsystemd/sd-event/sd-event.c b/src/libsystemd/sd-event/sd-event.c
|
|
index 549103bc6f..5e22190366 100644
|
|
--- a/src/libsystemd/sd-event/sd-event.c
|
|
+++ b/src/libsystemd/sd-event/sd-event.c
|
|
@@ -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;
|
|
@@ -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;
|
|
|
|
@@ -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. */
|
|
@@ -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) {
|