diff options
author | Lennart Poettering <lennart@poettering.net> | 2020-11-18 15:12:44 +0100 |
---|---|---|
committer | Lennart Poettering <lennart@poettering.net> | 2020-12-02 10:32:17 +0100 |
commit | f3e1f00d03445911ee73729219cea88c8a70c612 (patch) | |
tree | aafc7dcd5cf9bd097a796f982d534bc72bf7eba9 /src/resolve/resolved-resolv-conf.c | |
parent | 1098142436f46b889f6b7bcc87af54bc5b95d560 (diff) | |
download | systemd-f3e1f00d03445911ee73729219cea88c8a70c612.tar.gz |
resolved: don't update resolv.conf snippets unnecessarily
Fixes: #17577
Diffstat (limited to 'src/resolve/resolved-resolv-conf.c')
-rw-r--r-- | src/resolve/resolved-resolv-conf.c | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/src/resolve/resolved-resolv-conf.c b/src/resolve/resolved-resolv-conf.c index 6fd9959daf..33fc435a9a 100644 --- a/src/resolve/resolved-resolv-conf.c +++ b/src/resolve/resolved-resolv-conf.c @@ -359,8 +359,9 @@ int manager_write_resolv_conf(Manager *m) { goto fail; } - if (rename(temp_path_stub, PRIVATE_STUB_RESOLV_CONF) < 0) - r = log_error_errno(errno, "Failed to move new %s into place: %m", PRIVATE_STUB_RESOLV_CONF); + r = conservative_rename(AT_FDCWD, temp_path_stub, AT_FDCWD, PRIVATE_STUB_RESOLV_CONF); + if (r < 0) + log_error_errno(r, "Failed to move new %s into place: %m", PRIVATE_STUB_RESOLV_CONF); } else { r = symlink_atomic(basename(PRIVATE_UPLINK_RESOLV_CONF), PRIVATE_STUB_RESOLV_CONF); @@ -368,8 +369,9 @@ int manager_write_resolv_conf(Manager *m) { log_error_errno(r, "Failed to symlink %s: %m", PRIVATE_STUB_RESOLV_CONF); } - if (rename(temp_path_uplink, PRIVATE_UPLINK_RESOLV_CONF) < 0) - r = log_error_errno(errno, "Failed to move new %s into place: %m", PRIVATE_UPLINK_RESOLV_CONF); + r = conservative_rename(AT_FDCWD, temp_path_uplink, AT_FDCWD, PRIVATE_UPLINK_RESOLV_CONF); + if (r < 0) + log_error_errno(r, "Failed to move new %s into place: %m", PRIVATE_UPLINK_RESOLV_CONF); fail: if (r < 0) { |