From b41dcc51eb084e9c03dbdf02823bf38a3781609c Mon Sep 17 00:00:00 2001 From: Anita Zhang Date: Mon, 5 Oct 2020 20:59:54 -0700 Subject: [PATCH] cgroup-util: add cg_get_attribute_as_bool() helper --- src/basic/cgroup-util.c | 20 ++++++++++++++++++++ src/basic/cgroup-util.h | 3 +++ 2 files changed, 23 insertions(+) diff --git a/src/basic/cgroup-util.c b/src/basic/cgroup-util.c index 8f32296333..d2655673fd 100644 --- a/src/basic/cgroup-util.c +++ b/src/basic/cgroup-util.c @@ -1685,6 +1685,26 @@ int cg_get_attribute_as_uint64(const char *controller, const char *path, const c return 0; } +int cg_get_attribute_as_bool(const char *controller, const char *path, const char *attribute, bool *ret) { + _cleanup_free_ char *value = NULL; + int r; + + assert(ret); + + r = cg_get_attribute(controller, path, attribute, &value); + if (r == -ENOENT) + return -ENODATA; + if (r < 0) + return r; + + r = parse_boolean(value); + if (r < 0) + return r; + + *ret = r; + return 0; +} + int cg_get_keyed_attribute_full( const char *controller, const char *path, diff --git a/src/basic/cgroup-util.h b/src/basic/cgroup-util.h index 6f76417a04..eda2b16a1b 100644 --- a/src/basic/cgroup-util.h +++ b/src/basic/cgroup-util.h @@ -208,6 +208,9 @@ static inline int cg_get_keyed_attribute_graceful( int cg_get_attribute_as_uint64(const char *controller, const char *path, const char *attribute, uint64_t *ret); +/* Does a parse_boolean() on the attribute contents and sets ret accordingly */ +int cg_get_attribute_as_bool(const char *controller, const char *path, const char *attribute, bool *ret); + int cg_set_access(const char *controller, const char *path, uid_t uid, gid_t gid); int cg_set_xattr(const char *controller, const char *path, const char *name, const void *value, size_t size, int flags);