From 8dfd099b509c2e14a4ccbba735b3d1dc57e32952 Mon Sep 17 00:00:00 2001 From: Lennart Poettering Date: Tue, 13 Jun 2023 09:49:50 +0200 Subject: [PATCH] tree-wide: start properly syncing at various places we so far didn't Let's better be safe than sorry, and install files fully safely now that is is easy. --- src/boot/bootctl-install.c | 4 ++-- src/portable/portable.c | 2 +- src/shared/hwdb-util.c | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/boot/bootctl-install.c b/src/boot/bootctl-install.c index 26e18e3707a..397db7d3a2e 100644 --- a/src/boot/bootctl-install.c +++ b/src/boot/bootctl-install.c @@ -454,7 +454,7 @@ static int install_loader_config(const char *esp_path) { fprintf(f, "default %s-*\n", arg_entry_token); } - r = flink_tmpfile(f, t, p, /* flags= */ 0); + r = flink_tmpfile(f, t, p, LINK_TMPFILE_SYNC); if (r == -EEXIST) return 0; /* Silently skip creation if the file exists now (recheck) */ if (r < 0) @@ -483,7 +483,7 @@ static int install_loader_specification(const char *root) { fprintf(f, "type1\n"); - r = flink_tmpfile(f, t, p, /* flags= */ 0); + r = flink_tmpfile(f, t, p, LINK_TMPFILE_SYNC); if (r == -EEXIST) return 0; /* Silently skip creation if the file exists now (recheck) */ if (r < 0) diff --git a/src/portable/portable.c b/src/portable/portable.c index 44c69c0bebb..7d1fc87a912 100644 --- a/src/portable/portable.c +++ b/src/portable/portable.c @@ -1295,7 +1295,7 @@ static int attach_unit_file( if (fchmod(fd, 0644) < 0) return log_debug_errno(errno, "Failed to change unit file access mode for '%s': %m", path); - r = link_tmpfile(fd, tmp, path, /* flags= */ 0); + r = link_tmpfile(fd, tmp, path, LINK_TMPFILE_SYNC); if (r < 0) return log_debug_errno(r, "Failed to install unit file '%s': %m", path); diff --git a/src/shared/hwdb-util.c b/src/shared/hwdb-util.c index cf41d6a474a..59b678c424d 100644 --- a/src/shared/hwdb-util.c +++ b/src/shared/hwdb-util.c @@ -408,7 +408,7 @@ static int trie_store(struct trie *trie, const char *filename, bool compat) { return -errno; fwrite(&h, sizeof(struct trie_header_f), 1, f); - r = flink_tmpfile(f, filename_tmp, filename, LINK_TMPFILE_REPLACE); + r = flink_tmpfile(f, filename_tmp, filename, LINK_TMPFILE_REPLACE|LINK_TMPFILE_SYNC); if (r < 0) return r; -- 2.47.3