chiark / gitweb /
networkd: fix creation of runtime dirs at startup
authorTom Gundersen <teg@jklm.no>
Thu, 13 Mar 2014 18:02:28 +0000 (19:02 +0100)
committerTom Gundersen <teg@jklm.no>
Fri, 14 Mar 2014 11:44:17 +0000 (12:44 +0100)
This allows us to drop the repeated attempted creations of the runtime dirs during runtime.

src/libsystemd-network/sd-dhcp-lease.c
src/network/networkd-link.c
src/network/networkd-manager.c
src/network/networkd.c

index f7a204a..e6d80d4 100644 (file)
@@ -297,10 +297,6 @@ int dhcp_lease_save(sd_dhcp_lease *lease, const char *lease_file) {
         assert(lease);
         assert(lease_file);
 
-        r = mkdir_safe_label("/run/systemd/network/leases", 0755, 0, 0);
-        if (r < 0)
-                goto finish;
-
         r = fopen_temporary(lease_file, &f, &temp_path);
         if (r < 0)
                 goto finish;
index 39cef22..2650f86 100644 (file)
@@ -1367,10 +1367,6 @@ int link_save(Link *link) {
         assert(link);
         assert(link->state_file);
 
-        r = mkdir_safe_label("/run/systemd/network/links", 0755, 0, 0);
-        if (r < 0)
-                goto finish;
-
         r = fopen_temporary(link->state_file, &f, &temp_path);
         if (r < 0)
                 goto finish;
index f41914f..8c2f5ef 100644 (file)
@@ -407,10 +407,6 @@ int manager_update_resolv_conf(Manager *m) {
 
         assert(m);
 
-        r = mkdir_safe_label("/run/systemd/network", 0755, 0, 0);
-        if (r < 0)
-                return r;
-
         r = fopen_temporary("/run/systemd/network/resolv.conf", &f, &temp_path);
         if (r < 0)
                 return r;
index 2f6a12d..f0e6ad5 100644 (file)
@@ -42,8 +42,20 @@ int main(int argc, char *argv[]) {
 
         /* Always create the directories people can create inotify
          * watches in. */
-        mkdir_label("/run/systemd/network/links", 0755);
-        mkdir_label("/run/systemd/network/leases", 0755);
+        r = mkdir_label("/run/systemd/network", 0755);
+        if (r < 0)
+                log_error("Could not create runtime directory: %s",
+                          strerror(-r));
+
+        r = mkdir_label("/run/systemd/network/links", 0755);
+        if (r < 0)
+                log_error("Could not create runtime directory 'links': %s",
+                          strerror(-r));
+
+        r = mkdir_label("/run/systemd/network/leases", 0755);
+        if (r < 0)
+                log_error("Could not create runtime directory 'leases': %s",
+                          strerror(-r));
 
         r = manager_new(&m);
         if (r < 0) {