From 8a993b61d1cd46a9c48d36fb67818883d80d9bc2 Mon Sep 17 00:00:00 2001 From: Zbigniew Jędrzejewski-Szmek Date: Sat, 30 Apr 2016 16:21:41 -0400 Subject: Move no_alias information to shared/ This way it can be used in install.c in subsequent commit. --- src/core/mount.c | 1 - 1 file changed, 1 deletion(-) (limited to 'src/core/mount.c') diff --git a/src/core/mount.c b/src/core/mount.c index cc07873b24..adc74c3bea 100644 --- a/src/core/mount.c +++ b/src/core/mount.c @@ -1839,7 +1839,6 @@ const UnitVTable mount_vtable = { "Install\0", .private_section = "Mount", - .no_alias = true, .no_instances = true, .init = mount_init, -- cgit v1.2.3-54-g00ecf From ce99c68a3362a2905743a0673a4c016f2b8ab1a6 Mon Sep 17 00:00:00 2001 From: Zbigniew Jędrzejewski-Szmek Date: Sat, 30 Apr 2016 18:34:13 -0400 Subject: Move no_instances information to shared/ This way it can be used in install.c in subsequent commit. --- src/core/automount.c | 2 -- src/core/busname.c | 2 -- src/core/device.c | 2 -- src/core/mount.c | 2 -- src/core/scope.c | 1 - src/core/slice.c | 1 - src/core/swap.c | 2 -- src/core/unit.c | 2 +- src/core/unit.h | 3 --- src/shared/install.c | 9 +++++++++ src/shared/install.h | 1 + 11 files changed, 11 insertions(+), 16 deletions(-) (limited to 'src/core/mount.c') diff --git a/src/core/automount.c b/src/core/automount.c index 7374d50ae8..1239a0efc6 100644 --- a/src/core/automount.c +++ b/src/core/automount.c @@ -1050,8 +1050,6 @@ const UnitVTable automount_vtable = { "Automount\0" "Install\0", - .no_instances = true, - .init = automount_init, .load = automount_load, .done = automount_done, diff --git a/src/core/busname.c b/src/core/busname.c index 4d43bd21e6..e7b7b5c012 100644 --- a/src/core/busname.c +++ b/src/core/busname.c @@ -1028,8 +1028,6 @@ const UnitVTable busname_vtable = { "Install\0", .private_section = "BusName", - .no_instances = true, - .init = busname_init, .done = busname_done, .load = busname_load, diff --git a/src/core/device.c b/src/core/device.c index d01bec53d8..16e56efcc3 100644 --- a/src/core/device.c +++ b/src/core/device.c @@ -841,8 +841,6 @@ const UnitVTable device_vtable = { "Device\0" "Install\0", - .no_instances = true, - .init = device_init, .done = device_done, .load = unit_load_fragment_and_dropin_optional, diff --git a/src/core/mount.c b/src/core/mount.c index adc74c3bea..c8a898e4dc 100644 --- a/src/core/mount.c +++ b/src/core/mount.c @@ -1839,8 +1839,6 @@ const UnitVTable mount_vtable = { "Install\0", .private_section = "Mount", - .no_instances = true, - .init = mount_init, .load = mount_load, .done = mount_done, diff --git a/src/core/scope.c b/src/core/scope.c index 3915e5c88c..238f63a729 100644 --- a/src/core/scope.c +++ b/src/core/scope.c @@ -569,7 +569,6 @@ const UnitVTable scope_vtable = { "Install\0", .private_section = "Scope", - .no_instances = true, .can_transient = true, .init = scope_init, diff --git a/src/core/slice.c b/src/core/slice.c index 96c7c74598..c7700b8857 100644 --- a/src/core/slice.c +++ b/src/core/slice.c @@ -309,7 +309,6 @@ const UnitVTable slice_vtable = { "Install\0", .private_section = "Slice", - .no_instances = true, .can_transient = true, .init = slice_init, diff --git a/src/core/swap.c b/src/core/swap.c index f486a44cf5..c018648d87 100644 --- a/src/core/swap.c +++ b/src/core/swap.c @@ -1465,8 +1465,6 @@ const UnitVTable swap_vtable = { "Install\0", .private_section = "Swap", - .no_instances = true, - .init = swap_init, .load = swap_load, .done = swap_done, diff --git a/src/core/unit.c b/src/core/unit.c index 0313ee2ad3..a2726f10a6 100644 --- a/src/core/unit.c +++ b/src/core/unit.c @@ -193,7 +193,7 @@ int unit_add_name(Unit *u, const char *text) { if (r < 0) return r; - if (i && unit_vtable[t]->no_instances) + if (i && !unit_type_may_template(t)) return -EINVAL; /* Ensure that this unit is either instanced or not instanced, diff --git a/src/core/unit.h b/src/core/unit.h index 6ac925a185..be62e88421 100644 --- a/src/core/unit.h +++ b/src/core/unit.h @@ -416,9 +416,6 @@ struct UnitVTable { /* The strings to print in status messages */ UnitStatusMessageFormats status_message_formats; - /* Instances make no sense for this type */ - bool no_instances:1; - /* True if transient units of this type are OK */ bool can_transient:1; }; diff --git a/src/shared/install.c b/src/shared/install.c index 1635f50fdb..cc39aaf677 100644 --- a/src/shared/install.c +++ b/src/shared/install.c @@ -78,6 +78,15 @@ bool unit_type_may_alias(UnitType type) { UNIT_PATH); } +bool unit_type_may_template(UnitType type) { + return IN_SET(type, + UNIT_SERVICE, + UNIT_SOCKET, + UNIT_TARGET, + UNIT_TIMER, + UNIT_PATH); +} + static int in_search_path(const LookupPaths *p, const char *path) { _cleanup_free_ char *parent = NULL; char **i; diff --git a/src/shared/install.h b/src/shared/install.h index 8a8bd09c7c..5812447c5b 100644 --- a/src/shared/install.h +++ b/src/shared/install.h @@ -139,6 +139,7 @@ static inline bool UNIT_FILE_INSTALL_INFO_HAS_ALSO(UnitFileInstallInfo *i) { } bool unit_type_may_alias(UnitType type) _const_; +bool unit_type_may_template(UnitType type) _const_; int unit_file_enable( UnitFileScope scope, -- cgit v1.2.3-54-g00ecf