chiark / gitweb /
config_parse_set_status: put signals in the correct set
[elogind.git] / src / core / mount.c
index 5c87ed31ef60a222b56d6b3ac5c487ff67ecd081..a0b5fda9cb3b6b6261ded3f84ecba89d351b7e24 100644 (file)
@@ -300,7 +300,7 @@ static int mount_add_device_links(Mount *m) {
 
         assert(m);
 
-        p = get_mount_parameters_fragment(m);
+        p = get_mount_parameters(m);
         if (!p)
                 return 0;
 
@@ -378,13 +378,20 @@ static int mount_add_default_dependencies(Mount *m) {
         if (UNIT(m)->manager->running_as != SYSTEMD_SYSTEM)
                 return 0;
 
-        p = get_mount_parameters(m);
-
-        if (!p)
+        /* We do not add any default dependencies to / and /usr, since
+         * they are guaranteed to stay mounted the whole time, since
+         * our system is on it. Also, don't bother with anything
+         * mounted below virtual file systems, it's also going to be
+         * virtual, and hence not worth the effort. */
+        if (path_equal(m->where, "/") ||
+            path_equal(m->where, "/usr") ||
+            path_startswith(m->where, "/proc") ||
+            path_startswith(m->where, "/sys") ||
+            path_startswith(m->where, "/dev"))
                 return 0;
 
-        if (path_equal(m->where, "/") ||
-            path_equal(m->where, "/usr"))
+        p = get_mount_parameters(m);
+        if (!p)
                 return 0;
 
         if (mount_is_network(p)) {
@@ -920,7 +927,7 @@ static void mount_enter_mounting(Mount *m) {
                 _cleanup_free_ char *opts = NULL;
 
                 r = fstab_filter_options(m->parameters_fragment.options,
-                                         "nofail\0" "fail\0" "noauto\0" "auto\0", NULL, NULL, &opts);
+                                         "nofail\0" "noauto\0" "auto\0", NULL, NULL, &opts);
                 if (r < 0)
                         goto fail;
 
@@ -1030,7 +1037,7 @@ static int mount_start(Unit *u) {
         m->reload_result = MOUNT_SUCCESS;
 
         mount_enter_mounting(m);
-        return 0;
+        return 1;
 }
 
 static int mount_stop(Unit *u) {
@@ -1054,7 +1061,7 @@ static int mount_stop(Unit *u) {
                m->state == MOUNT_REMOUNTING_SIGKILL);
 
         mount_enter_unmounting(m);
-        return 0;
+        return 1;
 }
 
 static int mount_reload(Unit *u) {