Blob Blame History Raw
From 0011a372f6e7798a4164afdb02eff2d627f67a08 Mon Sep 17 00:00:00 2001
From: Michal Schmidt <mschmidt@redhat.com>
Date: Fri, 29 Jun 2012 01:47:24 +0200
Subject: [PATCH] mount: split adding of extras from mount_load() (cherry
 picked from commit
 1a4ac875003b49132c55a0ef36cd6ae2a15d3ac2)

Conflicts:
	src/core/mount.c
---
 src/core/mount.c | 119 ++++++++++++++++++++++++++++++++++---------------------
 1 file changed, 74 insertions(+), 45 deletions(-)

diff --git a/src/core/mount.c b/src/core/mount.c
index dcb6c5a..439dd84 100644
--- a/src/core/mount.c
+++ b/src/core/mount.c
@@ -590,72 +590,101 @@ static int mount_verify(Mount *m) {
         return 0;
 }
 
-static int mount_load(Unit *u) {
-        Mount *m = MOUNT(u);
+static int mount_add_extras(Mount *m) {
+        Unit *u = UNIT(m);
         int r;
 
-        assert(u);
-        assert(u->load_state == UNIT_STUB);
-
-        if ((r = unit_load_fragment_and_dropin_optional(u)) < 0)
+        r = unit_add_exec_dependencies(u, &m->exec_context);
+        if (r < 0)
                 return r;
 
-        /* This is a new unit? Then let's add in some extras */
-        if (u->load_state == UNIT_LOADED) {
-                if ((r = unit_add_exec_dependencies(u, &m->exec_context)) < 0)
-                        return r;
-
-                if (UNIT(m)->fragment_path)
-                        m->from_fragment = true;
-                else if (m->from_etc_fstab)
-                        /* We always add several default dependencies to fstab mounts,
-                         * but we do not want the implicit complementing of Wants= with After=
-                         * in the target unit that this mount unit will be hooked into. */
-                        UNIT(m)->default_dependencies = false;
+        if (UNIT(m)->fragment_path)
+                m->from_fragment = true;
+	else if (m->from_etc_fstab)
+		/* We always add several default dependencies to fstab mounts,
+		 * but we do not want the implicit complementing of Wants= with After=
+		 * in the target unit that this mount unit will be hooked into. */
+		UNIT(m)->default_dependencies = false;
 
+        if (!m->where) {
+                m->where = unit_name_to_path(u->id);
                 if (!m->where)
-                        if (!(m->where = unit_name_to_path(u->id)))
-                                return -ENOMEM;
-
-                path_kill_slashes(m->where);
+                        return -ENOMEM;
+        }
 
-                if (!UNIT(m)->description)
-                        if ((r = unit_set_description(u, m->where)) < 0)
-                                return r;
+        path_kill_slashes(m->where);
 
-                if ((r = mount_add_device_links(m)) < 0)
+        if (!UNIT(m)->description) {
+                r = unit_set_description(u, m->where);
+                if (r < 0)
                         return r;
+        }
 
-                if ((r = mount_add_mount_links(m)) < 0)
-                        return r;
+        r = mount_add_device_links(m);
+        if (r < 0)
+                return r;
 
-                if ((r = mount_add_socket_links(m)) < 0)
-                        return r;
+        r = mount_add_mount_links(m);
+        if (r < 0)
+                return r;
 
-                if ((r = mount_add_swap_links(m)) < 0)
-                        return r;
+        r = mount_add_socket_links(m);
+        if (r < 0)
+                return r;
 
-                if ((r = mount_add_path_links(m)) < 0)
-                        return r;
+        r = mount_add_swap_links(m);
+        if (r < 0)
+                return r;
+
+        r = mount_add_path_links(m);
+        if (r < 0)
+                return r;
+
+        r = mount_add_requires_mounts_links(m);
+        if (r < 0)
+                return r;
+
+        r = mount_add_automount_links(m);
+        if (r < 0)
+                return r;
+
+        r = mount_add_fstab_links(m);
+        if (r < 0)
+                return r;
 
-                r = mount_add_requires_mounts_links(m);
+        if (UNIT(m)->default_dependencies || m->from_etc_fstab) {
+                r = mount_add_default_dependencies(m);
                 if (r < 0)
                         return r;
+        }
 
-                if ((r = mount_add_automount_links(m)) < 0)
-                        return r;
+        r = unit_add_default_cgroups(u);
+        if (r < 0)
+                return r;
 
-                if ((r = mount_add_fstab_links(m)) < 0)
-                        return r;
+        r = mount_fix_timeouts(m);
+        if (r < 0)
+                return r;
 
-                if (UNIT(m)->default_dependencies || m->from_etc_fstab)
-                        if ((r = mount_add_default_dependencies(m)) < 0)
-                                return r;
+        return 0;
+}
 
-                if ((r = unit_add_default_cgroups(u)) < 0)
-                        return r;
+static int mount_load(Unit *u) {
+        Mount *m = MOUNT(u);
+        int r;
+
+        assert(u);
+        assert(u->load_state == UNIT_STUB);
+
+        r = unit_load_fragment_and_dropin_optional(u);
+        if (r < 0)
+                return r;
 
-                mount_fix_timeouts(m);
+        /* This is a new unit? Then let's add in some extras */
+        if (u->load_state == UNIT_LOADED) {
+                r = mount_add_extras(m);
+                if (r < 0)
+                        return r;
         }
 
         return mount_verify(m);