[CRIU] [PATCH v2 1/5] cgroup: add a check for cgroup namespaces

Tycho Andersen tycho.andersen at canonical.com
Sun Feb 21 11:28:49 PST 2016


v2: print a warning when cgroup ns is not present.

Signed-off-by: Tycho Andersen <tycho.andersen at canonical.com>
---
 criu/cr-check.c | 20 ++++++++++++++++++++
 1 file changed, 20 insertions(+)

diff --git a/criu/cr-check.c b/criu/cr-check.c
index 2bb0d9a..a67ee2d 100644
--- a/criu/cr-check.c
+++ b/criu/cr-check.c
@@ -820,6 +820,23 @@ static int check_clone_parent_vs_pid()
 	return 0;
 }
 
+static int check_cgroupns(void)
+{
+	int ret;
+	if (opts.check_ms_kernel) {
+		pr_warn("Skipping cgroup namespaces check\n");
+		return 0;
+	}
+
+	ret = access("/proc/self/ns/cgroup", F_OK);
+	if (ret < 0) {
+		pr_err("cgroupns not supported. This is not fatal.");
+		return -1;
+	}
+
+	return 0;
+}
+
 static int (*chk_feature)(void);
 
 int cr_check(void)
@@ -876,6 +893,7 @@ int cr_check(void)
 	ret |= check_aio_remap();
 	ret |= check_fdinfo_lock();
 	ret |= check_clone_parent_vs_pid();
+	ret |= check_cgroupns();
 
 out:
 	if (!ret)
@@ -949,6 +967,8 @@ int check_add_feature(char *feat)
 		chk_feature = check_ptrace_dump_seccomp_filters;
 	else if (!strcmp(feat, "loginuid"))
 		chk_feature = check_loginuid;
+	else if (!strcmp(feat, "cgroupns"))
+		chk_feature = check_cgroupns;
 	else {
 		pr_err("Unknown feature %s\n", feat);
 		return -1;
-- 
2.5.0



More information about the CRIU mailing list