]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
fstab-generator: use generator_add_symlink()
authorZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
Mon, 10 Jul 2017 03:40:14 +0000 (23:40 -0400)
committerZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
Mon, 10 Jul 2017 04:16:37 +0000 (00:16 -0400)
src/fstab-generator/fstab-generator.c

index ce9dccfe68c6689577ba128a928205c7502e15da..f72ca9953508c181ee2cd7f8c8ae4d4829375dfc 100644 (file)
@@ -91,7 +91,7 @@ static int add_swap(
                 bool noauto,
                 bool nofail) {
 
-        _cleanup_free_ char *name = NULL, *unit = NULL, *lnk = NULL;
+        _cleanup_free_ char *name = NULL, *unit = NULL;
         _cleanup_fclose_ FILE *f = NULL;
         int r;
 
@@ -148,14 +148,10 @@ static int add_swap(
                 return r;
 
         if (!noauto) {
-                lnk = strjoin(arg_dest, "/" SPECIAL_SWAP_TARGET,
-                              nofail ? ".wants/" : ".requires/", name, NULL);
-                if (!lnk)
-                        return log_oom();
-
-                mkdir_parents_label(lnk, 0755);
-                if (symlink(unit, lnk) < 0)
-                        return log_error_errno(errno, "Failed to create symlink %s: %m", lnk);
+                r = generator_add_symlink(arg_dest, SPECIAL_SWAP_TARGET,
+                                          nofail ? "wants" : "requires", name);
+                if (r < 0)
+                        return r;
         }
 
         return 0;
@@ -300,7 +296,7 @@ static int add_mount(
                 const char *source) {
 
         _cleanup_free_ char
-                *name = NULL, *unit = NULL, *lnk = NULL,
+                *name = NULL, *unit = NULL,
                 *automount_name = NULL, *automount_unit = NULL,
                 *filtered = NULL;
         _cleanup_fclose_ FILE *f = NULL;
@@ -430,13 +426,10 @@ static int add_mount(
                 return log_error_errno(r, "Failed to write unit file %s: %m", unit);
 
         if (!noauto && !automount) {
-                lnk = strjoin(dest, "/", post, nofail ? ".wants/" : ".requires/", name);
-                if (!lnk)
-                        return log_oom();
-
-                mkdir_parents_label(lnk, 0755);
-                if (symlink(unit, lnk) < 0)
-                        return log_error_errno(errno, "Failed to create symlink %s: %m", lnk);
+                r = generator_add_symlink(dest, post,
+                                          nofail ? "wants" : "requires", name);
+                if (r < 0)
+                        return r;
         }
 
         if (automount) {
@@ -491,14 +484,10 @@ static int add_mount(
                 if (r < 0)
                         return log_error_errno(r, "Failed to write unit file %s: %m", automount_unit);
 
-                free(lnk);
-                lnk = strjoin(dest, "/", post, nofail ? ".wants/" : ".requires/", automount_name);
-                if (!lnk)
-                        return log_oom();
-
-                mkdir_parents_label(lnk, 0755);
-                if (symlink(automount_unit, lnk) < 0)
-                        return log_error_errno(errno, "Failed to create symlink %s: %m", lnk);
+                r = generator_add_symlink(dest, post,
+                                          nofail ? "wants" : "requires", automount_name);
+                if (r < 0)
+                        return r;
         }
 
         return 0;