return false;
}
+static bool mount_is_auto(MountParameters *p) {
+ assert(p);
+
+ return !mount_test_option(p->options, "noauto");
+}
+
static bool needs_quota(MountParameters *p) {
assert(p);
static int mount_add_device_links(Mount *m) {
MountParameters *p;
+ bool device_wants_mount = false;
int r;
assert(m);
if (path_equal(m->where, "/"))
return 0;
- r = unit_add_node_link(UNIT(m), p->what, false);
+ if (mount_is_auto(p) && UNIT(m)->manager->running_as == SYSTEMD_SYSTEM)
+ device_wants_mount = true;
+
+ r = unit_add_node_link(UNIT(m), p->what, device_wants_mount);
if (r < 0)
return r;
if (r < 0)
goto fail;
- if (!path_equal(where, "/")) {
+ if (!path_equal(where, "/") &&
+ !path_equal(where, "/usr")) {
r = unit_add_dependency_by_name(u, UNIT_CONFLICTS, SPECIAL_UMOUNT_TARGET, NULL, true);
if (r < 0)
goto fail;