chiark
/
gitweb
/
~ianmdlvl
/
elogind.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
core: move ManagerRunningAs to shared
[elogind.git]
/
src
/
core
/
swap.c
diff --git
a/src/core/swap.c
b/src/core/swap.c
index cd4d9ab3d743dbcea9e0186e8b0050f8a10af4bf..b4f53b724862ceae6a2caf57242b9c63dff43035 100644
(file)
--- a/
src/core/swap.c
+++ b/
src/core/swap.c
@@
-39,6
+39,7
@@
#include "exit-status.h"
#include "def.h"
#include "path-util.h"
#include "exit-status.h"
#include "def.h"
#include "path-util.h"
+#include "virt.h"
static const UnitActiveState state_translation_table[_SWAP_STATE_MAX] = {
[SWAP_DEAD] = UNIT_INACTIVE,
static const UnitActiveState state_translation_table[_SWAP_STATE_MAX] = {
[SWAP_DEAD] = UNIT_INACTIVE,
@@
-173,7
+174,8
@@
static int swap_add_target_links(Swap *s) {
if (!s->from_fragment)
return 0;
if (!s->from_fragment)
return 0;
- if ((r = manager_load_unit(UNIT(s)->manager, SPECIAL_SWAP_TARGET, NULL, NULL, &tu)) < 0)
+ r = manager_load_unit(UNIT(s)->manager, SPECIAL_SWAP_TARGET, NULL, NULL, &tu);
+ if (r < 0)
return r;
return unit_add_dependency(UNIT(s), UNIT_BEFORE, tu, true);
return r;
return unit_add_dependency(UNIT(s), UNIT_BEFORE, tu, true);
@@
-195,7
+197,7
@@
static int swap_add_device_links(Swap *s) {
if (is_device_path(s->what))
return unit_add_node_link(UNIT(s), s->what,
!p->noauto && p->nofail &&
if (is_device_path(s->what))
return unit_add_node_link(UNIT(s), s->what,
!p->noauto && p->nofail &&
- UNIT(s)->manager->running_as ==
MANAGER
_SYSTEM);
+ UNIT(s)->manager->running_as ==
SYSTEMD
_SYSTEM);
else
/* File based swap devices need to be ordered after
* systemd-remount-fs.service, since they might need a
else
/* File based swap devices need to be ordered after
* systemd-remount-fs.service, since they might need a
@@
-208,7
+210,10
@@
static int swap_add_default_dependencies(Swap *s) {
assert(s);
assert(s);
- if (UNIT(s)->manager->running_as != MANAGER_SYSTEM)
+ if (UNIT(s)->manager->running_as != SYSTEMD_SYSTEM)
+ return 0;
+
+ if (detect_container(NULL) > 0)
return 0;
r = unit_add_two_dependencies_by_name(UNIT(s), UNIT_BEFORE, UNIT_CONFLICTS, SPECIAL_UMOUNT_TARGET, NULL, true);
return 0;
r = unit_add_two_dependencies_by_name(UNIT(s), UNIT_BEFORE, UNIT_CONFLICTS, SPECIAL_UMOUNT_TARGET, NULL, true);
@@
-797,6
+802,9
@@
static int swap_start(Unit *u) {
assert(s->state == SWAP_DEAD || s->state == SWAP_FAILED);
assert(s->state == SWAP_DEAD || s->state == SWAP_FAILED);
+ if (detect_container(NULL) > 0)
+ return -EPERM;
+
s->result = SWAP_SUCCESS;
swap_enter_activating(s);
return 0;
s->result = SWAP_SUCCESS;
swap_enter_activating(s);
return 0;
@@
-817,6
+825,9
@@
static int swap_stop(Unit *u) {
assert(s->state == SWAP_ACTIVATING ||
s->state == SWAP_ACTIVE);
assert(s->state == SWAP_ACTIVATING ||
s->state == SWAP_ACTIVE);
+ if (detect_container(NULL) > 0)
+ return -EPERM;
+
swap_enter_deactivating(s);
return 0;
}
swap_enter_deactivating(s);
return 0;
}
@@
-1344,6
+1355,8
@@
DEFINE_STRING_TABLE_LOOKUP(swap_result, SwapResult);
const UnitVTable swap_vtable = {
.object_size = sizeof(Swap),
const UnitVTable swap_vtable = {
.object_size = sizeof(Swap),
+ .exec_context_offset = offsetof(Swap, exec_context),
+
.sections =
"Unit\0"
"Swap\0"
.sections =
"Unit\0"
"Swap\0"