goto fail;
}
- if ((s->primary_wd = inotify_add_watch(s->inotify_fd, k, flags_table[s->type])) >= 0)
+ s->primary_wd = inotify_add_watch(s->inotify_fd, k, flags_table[s->type]);
+ if (s->primary_wd >= 0)
exists = true;
do {
int flags;
/* This assumes the path was passed through path_kill_slashes()! */
- if (!(slash = strrchr(k, '/')))
+ slash = strrchr(k, '/');
+ if (!slash)
break;
/* Trim the path at the last slash. Keep the slash if it's the root dir. */
int r = 0;
if (events != EPOLLIN) {
- log_error("Got Invalid poll event on inotify.");
+ log_error("Got invalid poll event on inotify.");
r = -EINVAL;
goto out;
}
assert(l > 0);
- if (!(buf = malloc(l))) {
+ buf = malloc(l);
+ if (!buf) {
log_error("Failed to allocate buffer: %m");
r = -errno;
goto out;
}
- if ((k = read(s->inotify_fd, buf, l)) < 0) {
+ k = read(s->inotify_fd, buf, l);
+ if (k < 0) {
log_error("Failed to read inotify event: %m");
r = -errno;
goto out;
if (s->type == PATH_EXISTS || s->type == PATH_EXISTS_GLOB)
return;
- if ((r = mkdir_p_label(s->path, mode)) < 0)
+ r = mkdir_p_label(s->path, mode);
+ if (r < 0)
log_warning("mkdir(%s) failed: %s", s->path, strerror(-r));
}
p->directory_mode = 0755;
}
-static void path_done(Unit *u) {
- Path *p = PATH(u);
+void path_free_specs(Path *p) {
PathSpec *s;
assert(p);
- unit_ref_unset(&p->unit);
-
while ((s = p->specs)) {
- path_spec_unwatch(s, u);
+ path_spec_unwatch(s, UNIT(p));
LIST_REMOVE(PathSpec, spec, p->specs, s);
path_spec_done(s);
free(s);
}
}
+static void path_done(Unit *u) {
+ Path *p = PATH(u);
+
+ assert(p);
+
+ unit_ref_unset(&p->unit);
+ path_free_specs(p);
+}
+
int path_add_one_mount_link(Path *p, Mount *m) {
PathSpec *s;
int r;
return 0;
if (!p->specs) {
- log_error("%s lacks path setting. Refusing.", UNIT(p)->id);
+ log_error_unit(UNIT(p)->id,
+ "%s lacks path setting. Refusing.", UNIT(p)->id);
return -EINVAL;
}
assert(p);
- if (UNIT(p)->manager->running_as == MANAGER_SYSTEM) {
+ if (UNIT(p)->manager->running_as == SYSTEMD_SYSTEM) {
if ((r = unit_add_dependency_by_name(UNIT(p), UNIT_BEFORE, SPECIAL_BASIC_TARGET, NULL, true)) < 0)
return r;