]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
resolved: don't update resolv.conf snippets unnecessarily 17804/head
authorLennart Poettering <lennart@poettering.net>
Wed, 18 Nov 2020 14:12:44 +0000 (15:12 +0100)
committerLennart Poettering <lennart@poettering.net>
Wed, 2 Dec 2020 09:32:17 +0000 (10:32 +0100)
Fixes: #17577
src/resolve/resolved-resolv-conf.c

index 6fd9959daf130e7177ba940592ace82bd425a9e3..33fc435a9a374f9a870e590cfdeacba9e7075771 100644 (file)
@@ -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) {