MountParameters *p;
Unit *u;
int r;
+ bool noauto;
+ bool handle;
assert(m);
else
return 0;
- if (!p->fstype)
- return 0;
+ noauto = mount_test_option(p->options, MNTOPT_NOAUTO);
+ handle = mount_test_option(p->options, "comment=systemd.mount");
- if (mount_test_option(p->options, MNTOPT_NOAUTO))
+ if (noauto && !handle)
return 0;
if (mount_test_option(p->options, "_netdev") ||
if ((r = manager_load_unit(UNIT(m)->meta.manager, target, &u)) < 0)
return r;
- if ((r = unit_add_dependency(u, UNIT_WANTS, UNIT(m))) < 0)
- return r;
+ if (handle)
+ if ((r = unit_add_dependency(u, UNIT_WANTS, UNIT(m))) < 0)
+ return r;
return unit_add_dependency(UNIT(m), UNIT_BEFORE, u);
}
return state_translation_table[MOUNT(u)->state];
}
+static const char *mount_sub_state_to_string(Unit *u) {
+ assert(u);
+
+ return state_string_table[MOUNT(u)->state];
+}
+
static void mount_sigchld_event(Unit *u, pid_t pid, int code, int status) {
Mount *m = MOUNT(u);
bool success;
.reload = mount_reload,
.active_state = mount_active_state,
+ .sub_state_to_string = mount_sub_state_to_string,
.sigchld_event = mount_sigchld_event,
.timer_event = mount_timer_event,