X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=blobdiff_plain;f=src%2Fcore%2Fmount.c;h=d436a8460647df4ec11245250a3e4b26322afbb4;hp=c7d29b0c887b4b5082c689fa92dfd8e66f10164d;hb=5073f89f102d98c27c4f3aefb5643b50a5301d10;hpb=b56a422a919ec5a12f8fa7f9dfc63f7d88c6a077 diff --git a/src/core/mount.c b/src/core/mount.c index c7d29b0c8..d436a8460 100644 --- a/src/core/mount.c +++ b/src/core/mount.c @@ -338,6 +338,12 @@ static bool mount_is_bind(MountParameters *p) { 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); @@ -356,6 +362,7 @@ static bool needs_quota(MountParameters *p) { static int mount_add_device_links(Mount *m) { MountParameters *p; + bool device_wants_mount = false; int r; assert(m); @@ -376,7 +383,10 @@ static int mount_add_device_links(Mount *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;