summaryrefslogtreecommitdiff
path: root/src/core/mount.c
diff options
context:
space:
mode:
authorLennart Poettering <lennart@poettering.net>2013-12-02 23:30:19 +0100
committerLennart Poettering <lennart@poettering.net>2013-12-02 23:32:34 +0100
commite821075a23fdfa3ca7738fc30bb2d4c430fe10c0 (patch)
tree37f970d8139c7796dda5ef0a295ee121ceabf349 /src/core/mount.c
parentf9638db8de2f915a5c5f6e4b7292494168eb4141 (diff)
bus: add .busname unit type to implement kdbus-style bus activation
Diffstat (limited to 'src/core/mount.c')
-rw-r--r--src/core/mount.c36
1 files changed, 15 insertions, 21 deletions
diff --git a/src/core/mount.c b/src/core/mount.c
index e46c72a644..77493dbd3c 100644
--- a/src/core/mount.c
+++ b/src/core/mount.c
@@ -138,6 +138,8 @@ static void mount_init(Unit *u) {
m->directory_mode = 0755;
exec_context_init(&m->exec_context);
+ kill_context_init(&m->kill_context);
+ cgroup_context_init(&m->cgroup_context);
if (unit_has_name(u, "-.mount")) {
/* Don't allow start/stop for root directory */
@@ -150,9 +152,6 @@ static void mount_init(Unit *u) {
m->exec_context.std_error = u->manager->default_std_error;
}
- kill_context_init(&m->kill_context);
- cgroup_context_init(&m->cgroup_context);
-
/* We need to make sure that /bin/mount is always called in
* the same process group as us, so that the autofs kernel
* side doesn't send us another mount request while we are
@@ -503,29 +502,22 @@ static int mount_verify(Mount *m) {
b = unit_has_name(UNIT(m), e);
if (!b) {
- log_error_unit(UNIT(m)->id,
- "%s's Where setting doesn't match unit name. Refusing.",
- UNIT(m)->id);
+ log_error_unit(UNIT(m)->id, "%s's Where= setting doesn't match unit name. Refusing.", UNIT(m)->id);
return -EINVAL;
}
if (mount_point_is_api(m->where) || mount_point_ignore(m->where)) {
- log_error_unit(UNIT(m)->id,
- "Cannot create mount unit for API file system %s. Refusing.",
- m->where);
+ log_error_unit(UNIT(m)->id, "Cannot create mount unit for API file system %s. Refusing.", m->where);
return -EINVAL;
}
if (UNIT(m)->fragment_path && !m->parameters_fragment.what) {
- log_error_unit(UNIT(m)->id,
- "%s's What setting is missing. Refusing.", UNIT(m)->id);
+ log_error_unit(UNIT(m)->id, "%s's What setting is missing. Refusing.", UNIT(m)->id);
return -EBADMSG;
}
if (m->exec_context.pam_name && m->kill_context.kill_mode != KILL_CONTROL_GROUP) {
- log_error_unit(UNIT(m)->id,
- "%s has PAM enabled. Kill mode must be set to control-group'. Refusing.",
- UNIT(m)->id);
+ log_error_unit(UNIT(m)->id, "%s has PAM enabled. Kill mode must be set to control-group'. Refusing.",UNIT(m)->id);
return -EINVAL;
}
@@ -536,7 +528,9 @@ static int mount_add_extras(Mount *m) {
Unit *u = UNIT(m);
int r;
- if (UNIT(m)->fragment_path)
+ assert(m);
+
+ if (u->fragment_path)
m->from_fragment = true;
if (!m->where) {
@@ -551,7 +545,7 @@ static int mount_add_extras(Mount *m) {
if (r < 0)
return r;
- if (!UNIT(m)->description) {
+ if (!u->description) {
r = unit_set_description(u, m->where);
if (r < 0)
return r;
@@ -569,7 +563,7 @@ static int mount_add_extras(Mount *m) {
if (r < 0)
return r;
- if (UNIT(m)->default_dependencies) {
+ if (u->default_dependencies) {
r = mount_add_default_dependencies(m);
if (r < 0)
return r;
@@ -583,6 +577,10 @@ static int mount_add_extras(Mount *m) {
if (r < 0)
return r;
+ r = unit_exec_context_defaults(u, &m->exec_context);
+ if (r < 0)
+ return r;
+
return 0;
}
@@ -606,10 +604,6 @@ static int mount_load(Unit *u) {
r = mount_add_extras(m);
if (r < 0)
return r;
-
- r = unit_exec_context_defaults(u, &m->exec_context);
- if (r < 0)
- return r;
}
return mount_verify(m);