[MOUNT_REMOUNTING_SIGKILL] = UNIT_ACTIVE_RELOADING,
[MOUNT_UNMOUNTING_SIGTERM] = UNIT_DEACTIVATING,
[MOUNT_UNMOUNTING_SIGKILL] = UNIT_DEACTIVATING,
- [MOUNT_MAINTAINANCE] = UNIT_INACTIVE,
+ [MOUNT_MAINTENANCE] = UNIT_INACTIVE,
};
static void mount_init(Unit *u) {
state == MOUNT_REMOUNTING_SIGKILL ||
state == MOUNT_UNMOUNTING_SIGTERM ||
state == MOUNT_UNMOUNTING_SIGKILL ||
- state == MOUNT_MAINTAINANCE)
+ state == MOUNT_MAINTENANCE)
mount_notify_automount(m, -ENODEV);
if (state != old_state)
if (!success)
m->failure = true;
- mount_set_state(m, m->failure ? MOUNT_MAINTAINANCE : MOUNT_DEAD);
+ mount_set_state(m, m->failure ? MOUNT_MAINTENANCE : MOUNT_DEAD);
}
static void mount_enter_mounted(Mount *m, bool success) {
m->state == MOUNT_MOUNTING_SIGKILL)
return 0;
- assert(m->state == MOUNT_DEAD || m->state == MOUNT_MAINTAINANCE);
+ assert(m->state == MOUNT_DEAD || m->state == MOUNT_MAINTENANCE);
m->failure = false;
mount_enter_mounting(m);
assert(m);
assert(pid >= 0);
- success = is_clean_exit(code, status);
- m->failure = m->failure || !success;
+ if (pid != m->control_pid)
+ return;
- assert(m->control_pid == pid);
m->control_pid = 0;
+ success = is_clean_exit(code, status);
+ m->failure = m->failure || !success;
+
if (m->control_command) {
exec_status_fill(&m->control_command->exec_status, pid, code, status);
m->control_command = NULL;
switch (mount->state) {
case MOUNT_DEAD:
- case MOUNT_MAINTAINANCE:
+ case MOUNT_MAINTENANCE:
mount_enter_mounted(mount, true);
break;
[MOUNT_REMOUNTING_SIGKILL] = "remounting-sigkill",
[MOUNT_UNMOUNTING_SIGTERM] = "unmounting-sigterm",
[MOUNT_UNMOUNTING_SIGKILL] = "unmounting-sigkill",
- [MOUNT_MAINTAINANCE] = "maintainance"
+ [MOUNT_MAINTENANCE] = "maintenance"
};
DEFINE_STRING_TABLE_LOOKUP(mount_state, MountState);