116 lines
4.4 KiB
Diff
116 lines
4.4 KiB
Diff
|
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(
|