From f906059875069ef0b72e54581d78fe4e28b375a3 Mon Sep 17 00:00:00 2001
From: Lennart Poettering <lennart@poettering.net>
Date: Tue, 17 Jun 2014 00:10:54 +0200
Subject: [PATCH] install: various modernizations
(cherry picked from commit 1dacfd2ad643019f41fb979f5a8c144172911f85)
---
src/shared/install.c | 47 ++++++++++++++++++++++-------------------------
1 file changed, 22 insertions(+), 25 deletions(-)
diff --git a/src/shared/install.c b/src/shared/install.c
index 40dc7beb..0f49f2a9 100644
--- a/src/shared/install.c
+++ b/src/shared/install.c
@@ -287,30 +287,31 @@ static int remove_marked_symlinks_fd(
set_get(remove_symlinks_to, dest) ||
set_get(remove_symlinks_to, basename(dest));
- if (found) {
+ if (!found)
+ continue;
- if (unlink(p) < 0 && errno != ENOENT) {
- if (r == 0)
- r = -errno;
- continue;
- }
+ if (unlink(p) < 0 && errno != ENOENT) {
+
+ if (r == 0)
+ r = -errno;
+ continue;
+ }
- rmdir_parents(p, config_path);
+ rmdir_parents(p, config_path);
- path_kill_slashes(p);
+ path_kill_slashes(p);
- add_file_change(changes, n_changes, UNIT_FILE_UNLINK, p, NULL);
+ add_file_change(changes, n_changes, UNIT_FILE_UNLINK, p, NULL);
- if (!set_get(remove_symlinks_to, p)) {
+ if (!set_get(remove_symlinks_to, p)) {
- q = mark_symlink_for_removal(&remove_symlinks_to, p);
- if (q < 0) {
- if (r == 0)
- r = q;
- } else
- *deleted = true;
- }
+ q = mark_symlink_for_removal(&remove_symlinks_to, p);
+ if (q < 0) {
+ if (r == 0)
+ r = q;
+ } else
+ *deleted = true;
}
}
}
@@ -417,10 +418,8 @@ static int find_symlinks_fd(
/* This will close nfd, regardless whether it succeeds or not */
q = find_symlinks_fd(name, nfd, p, config_path, same_name_link);
-
if (q > 0)
return 1;
-
if (r == 0)
r = q;
@@ -595,7 +594,6 @@ int unit_file_mask(
if (symlink("/dev/null", path) >= 0) {
add_file_change(changes, n_changes, UNIT_FILE_SYMLINK, path, "/dev/null");
-
continue;
}
@@ -762,7 +760,6 @@ int unit_file_link(
_cleanup_free_ char *dest = NULL;
q = readlink_and_make_absolute(path, &dest);
-
if (q < 0 && errno != ENOENT) {
if (r == 0)
r = q;
@@ -1302,8 +1299,8 @@ static int install_info_symlink_link(
UnitFileChange **changes,
unsigned *n_changes) {
- int r;
_cleanup_free_ char *path = NULL;
+ int r;
assert(i);
assert(paths);
@@ -1314,11 +1311,11 @@ static int install_info_symlink_link(
if (r != 0)
return r;
- if (asprintf(&path, "%s/%s", config_path, i->name) < 0)
+ path = strjoin(config_path, "/", i->name, NULL);
+ if (!path)
return -ENOMEM;
- r = create_symlink(i->path, path, force, changes, n_changes);
- return r;
+ return create_symlink(i->path, path, force, changes, n_changes);
}
static int install_info_apply(