mount.c | mount.c | |||
---|---|---|---|---|
skipping to change at line 365 | skipping to change at line 365 | |||
if (!mount_is_bind(p) && | if (!mount_is_bind(p) && | |||
!path_equal(m->where, "/")) { | !path_equal(m->where, "/")) { | |||
r = unit_add_node_link(UNIT(m), p->what, false); | r = unit_add_node_link(UNIT(m), p->what, false); | |||
if (r < 0) | if (r < 0) | |||
return r; | return r; | |||
} | } | |||
if (p->passno > 0 && | if (p->passno > 0 && | |||
!mount_is_bind(p) && | !mount_is_bind(p) && | |||
!path_equal(m->where, "/") && | !path_equal(m->where, "/") && | |||
UNIT(m)->manager->running_as == MANAGER_SYSTEM) { | UNIT(m)->manager->running_as == SYSTEMD_SYSTEM) { | |||
char *name; | char *name; | |||
Unit *fsck; | Unit *fsck; | |||
/* Let's add in the fsck service */ | /* Let's add in the fsck service */ | |||
/* aka SPECIAL_FSCK_SERVICE */ | /* aka SPECIAL_FSCK_SERVICE */ | |||
name = unit_name_from_path_instance("systemd-fsck", p->what , ".service"); | name = unit_name_from_path_instance("systemd-fsck", p->what , ".service"); | |||
if (!name) | if (!name) | |||
return -ENOMEM; | return -ENOMEM; | |||
r = manager_load_unit_prepare(UNIT(m)->manager, name, NULL, NULL, &fsck); | r = manager_load_unit_prepare(UNIT(m)->manager, name, NULL, NULL, &fsck); | |||
skipping to change at line 399 | skipping to change at line 399 | |||
return 0; | return 0; | |||
} | } | |||
static int mount_add_quota_links(Mount *m) { | static int mount_add_quota_links(Mount *m) { | |||
int r; | int r; | |||
MountParameters *p; | MountParameters *p; | |||
assert(m); | assert(m); | |||
if (UNIT(m)->manager->running_as != MANAGER_SYSTEM) | if (UNIT(m)->manager->running_as != SYSTEMD_SYSTEM) | |||
return 0; | return 0; | |||
p = get_mount_parameters_fragment(m); | p = get_mount_parameters_fragment(m); | |||
if (!p) | if (!p) | |||
return 0; | return 0; | |||
if (!needs_quota(p)) | if (!needs_quota(p)) | |||
return 0; | return 0; | |||
r = unit_add_two_dependencies_by_name(UNIT(m), UNIT_BEFORE, UNIT_WA NTS, SPECIAL_QUOTACHECK_SERVICE, NULL, true); | r = unit_add_two_dependencies_by_name(UNIT(m), UNIT_BEFORE, UNIT_WA NTS, SPECIAL_QUOTACHECK_SERVICE, NULL, true); | |||
skipping to change at line 427 | skipping to change at line 427 | |||
return 0; | return 0; | |||
} | } | |||
static int mount_add_default_dependencies(Mount *m) { | static int mount_add_default_dependencies(Mount *m) { | |||
int r; | int r; | |||
MountParameters *p; | MountParameters *p; | |||
const char *after; | const char *after; | |||
assert(m); | assert(m); | |||
if (UNIT(m)->manager->running_as != MANAGER_SYSTEM) | if (UNIT(m)->manager->running_as != SYSTEMD_SYSTEM) | |||
return 0; | return 0; | |||
p = get_mount_parameters_fragment(m); | p = get_mount_parameters_fragment(m); | |||
if (!p) | if (!p) | |||
return 0; | return 0; | |||
if (path_equal(m->where, "/")) | if (path_equal(m->where, "/")) | |||
return 0; | return 0; | |||
if (mount_is_network(p)) | if (mount_is_network(p)) | |||
skipping to change at line 962 | skipping to change at line 962 | |||
int r; | int r; | |||
MountParameters *p; | MountParameters *p; | |||
assert(m); | assert(m); | |||
m->control_command_id = MOUNT_EXEC_MOUNT; | m->control_command_id = MOUNT_EXEC_MOUNT; | |||
m->control_command = m->exec_command + MOUNT_EXEC_MOUNT; | m->control_command = m->exec_command + MOUNT_EXEC_MOUNT; | |||
mkdir_p_label(m->where, m->directory_mode); | mkdir_p_label(m->where, m->directory_mode); | |||
if (dir_is_empty(m->where) <= 0) | ||||
log_notice("%s: Directory %s to mount over is not empty, mo | ||||
unting anyway. (To see the over-mounted files, please manually mount the un | ||||
derlying file system to a secondary location.)", m->meta.id, m->where); | ||||
/* Create the source directory for bind-mounts if needed */ | /* Create the source directory for bind-mounts if needed */ | |||
p = get_mount_parameters_fragment(m); | p = get_mount_parameters_fragment(m); | |||
if (p && mount_is_bind(p)) | if (p && mount_is_bind(p)) | |||
mkdir_p_label(p->what, m->directory_mode); | mkdir_p_label(p->what, m->directory_mode); | |||
if (m->from_fragment) | if (m->from_fragment) | |||
r = exec_command_set( | r = exec_command_set( | |||
m->control_command, | m->control_command, | |||
"/bin/mount", | "/bin/mount", | |||
m->parameters_fragment.what, | m->parameters_fragment.what, | |||
skipping to change at line 984 | skipping to change at line 987 | |||
m->parameters_fragment.options ? "-o" : NUL L, m->parameters_fragment.options, | m->parameters_fragment.options ? "-o" : NUL L, m->parameters_fragment.options, | |||
NULL); | NULL); | |||
else | else | |||
r = -ENOENT; | r = -ENOENT; | |||
if (r < 0) | if (r < 0) | |||
goto fail; | goto fail; | |||
mount_unwatch_control_pid(m); | mount_unwatch_control_pid(m); | |||
if ((r = mount_spawn(m, m->control_command, &m->control_pid)) < 0) | r = mount_spawn(m, m->control_command, &m->control_pid); | |||
if (r < 0) | ||||
goto fail; | goto fail; | |||
mount_set_state(m, MOUNT_MOUNTING); | mount_set_state(m, MOUNT_MOUNTING); | |||
return; | return; | |||
fail: | fail: | |||
log_warning("%s failed to run 'mount' task: %s", UNIT(m)->id, strer ror(-r)); | log_warning("%s failed to run 'mount' task: %s", UNIT(m)->id, strer ror(-r)); | |||
mount_enter_dead(m, MOUNT_FAILURE_RESOURCES); | mount_enter_dead(m, MOUNT_FAILURE_RESOURCES); | |||
} | } | |||
skipping to change at line 1800 | skipping to change at line 1804 | |||
[MOUNT_FAILURE_TIMEOUT] = "timeout", | [MOUNT_FAILURE_TIMEOUT] = "timeout", | |||
[MOUNT_FAILURE_EXIT_CODE] = "exit-code", | [MOUNT_FAILURE_EXIT_CODE] = "exit-code", | |||
[MOUNT_FAILURE_SIGNAL] = "signal", | [MOUNT_FAILURE_SIGNAL] = "signal", | |||
[MOUNT_FAILURE_CORE_DUMP] = "core-dump" | [MOUNT_FAILURE_CORE_DUMP] = "core-dump" | |||
}; | }; | |||
DEFINE_STRING_TABLE_LOOKUP(mount_result, MountResult); | DEFINE_STRING_TABLE_LOOKUP(mount_result, MountResult); | |||
const UnitVTable mount_vtable = { | const UnitVTable mount_vtable = { | |||
.object_size = sizeof(Mount), | .object_size = sizeof(Mount), | |||
.exec_context_offset = offsetof(Mount, exec_context), | ||||
.sections = | .sections = | |||
"Unit\0" | "Unit\0" | |||
"Mount\0" | "Mount\0" | |||
"Install\0", | "Install\0", | |||
.no_alias = true, | .no_alias = true, | |||
.no_instances = true, | .no_instances = true, | |||
.init = mount_init, | .init = mount_init, | |||
.load = mount_load, | .load = mount_load, | |||
End of changes. 6 change blocks. | ||||
4 lines changed or deleted | 12 lines changed or added | |||
This html diff was produced by rfcdiff 1.41. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ |