summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/core/swap.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/core/swap.c b/src/core/swap.c
index cd4d9ab3d7..41ece2708f 100644
--- 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 "virt.h"
static const UnitActiveState state_translation_table[_SWAP_STATE_MAX] = {
[SWAP_DEAD] = UNIT_INACTIVE,
@@ -797,6 +798,9 @@ static int swap_start(Unit *u) {
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;
@@ -817,6 +821,9 @@ static int swap_stop(Unit *u) {
assert(s->state == SWAP_ACTIVATING ||
s->state == SWAP_ACTIVE);
+ if (detect_container(NULL) > 0)
+ return -EPERM;
+
swap_enter_deactivating(s);
return 0;
}