chiark
/
gitweb
/
~ianmdlvl
/
elogind.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
cgroup2: use new fstype for unified hierarchy
[elogind.git]
/
src
/
basic
/
cgroup-util.c
diff --git
a/src/basic/cgroup-util.c
b/src/basic/cgroup-util.c
index 502fe460903ca5098daa744e2308fc45f32ef41d..3506ca8bffaf0c1b1085c3121c2b10d76e4deffb 100644
(file)
--- a/
src/basic/cgroup-util.c
+++ b/
src/basic/cgroup-util.c
@@
-1,5
+1,3
@@
-/*-*- Mode: C; c-basic-offset: 8; indent-tabs-mode: nil -*-*/
-
/***
This file is part of systemd.
/***
This file is part of systemd.
@@
-19,28
+17,45
@@
along with systemd; If not, see <http://www.gnu.org/licenses/>.
***/
along with systemd; If not, see <http://www.gnu.org/licenses/>.
***/
+#include <dirent.h>
#include <errno.h>
#include <errno.h>
-#include <unistd.h>
+#include <ftw.h>
+//#include <limits.h>
#include <signal.h>
#include <signal.h>
-
#include <string
.h>
+
//#include <stddef
.h>
#include <stdlib.h>
#include <stdlib.h>
-#include <
dirent
.h>
+#include <
string
.h>
#include <sys/stat.h>
#include <sys/stat.h>
+//#include <sys/statfs.h>
#include <sys/types.h>
#include <sys/types.h>
-#include <
ftw
.h>
+#include <
unistd
.h>
-#include "set.h"
-#include "macro.h"
-#include "util.h"
-#include "formats-util.h"
-#include "process-util.h"
-#include "path-util.h"
-// #include "unit-name.h"
+#include "alloc-util.h"
+#include "cgroup-util.h"
+//#include "def.h"
+#include "dirent-util.h"
+#include "extract-word.h"
+#include "fd-util.h"
#include "fileio.h"
#include "fileio.h"
-// #include "special.h"
-#include "mkdir.h"
+#include "formats-util.h"
+#include "fs-util.h"
+//#include "log.h"
#include "login-util.h"
#include "login-util.h"
-#include "cgroup-util.h"
+#include "macro.h"
+//#include "missing.h"
+#include "mkdir.h"
+#include "parse-util.h"
+#include "path-util.h"
+#include "proc-cmdline.h"
+#include "process-util.h"
+#include "set.h"
+//#include "special.h"
+#include "stat-util.h"
+#include "stdio-util.h"
+#include "string-table.h"
+#include "string-util.h"
+#include "unit-name.h"
+#include "user-util.h"
int cg_enumerate_processes(const char *controller, const char *path, FILE **_f) {
_cleanup_free_ char *fs = NULL;
int cg_enumerate_processes(const char *controller, const char *path, FILE **_f) {
_cleanup_free_ char *fs = NULL;
@@
-76,7
+91,7
@@
int cg_read_pid(FILE *f, pid_t *_pid) {
if (feof(f))
return 0;
if (feof(f))
return 0;
- return errno ? -errno : -EIO;
+ return errno
> 0
? -errno : -EIO;
}
if (ul <= 0)
}
if (ul <= 0)
@@
-546,7
+561,6
@@
int cg_get_path(const char *controller, const char *path, const char *suffix, ch
r = join_path_unified(path, suffix, fs);
else
r = join_path_legacy(controller, path, suffix, fs);
r = join_path_unified(path, suffix, fs);
else
r = join_path_legacy(controller, path, suffix, fs);
-
if (r < 0)
return r;
if (r < 0)
return r;
@@
-636,7
+650,7
@@
int cg_trim(const char *controller, const char *path, bool delete_root) {
if (nftw(fs, trim_cb, 64, FTW_DEPTH|FTW_MOUNT|FTW_PHYS) != 0) {
if (errno == ENOENT)
r = 0;
if (nftw(fs, trim_cb, 64, FTW_DEPTH|FTW_MOUNT|FTW_PHYS) != 0) {
if (errno == ENOENT)
r = 0;
- else if (errno
!=
0)
+ else if (errno
>
0)
r = -errno;
else
r = -EIO;
r = -errno;
else
r = -EIO;
@@
-705,7
+719,7
@@
int cg_attach(const char *controller, const char *path, pid_t pid) {
if (pid == 0)
pid = getpid();
if (pid == 0)
pid = getpid();
-
snprintf(c, sizeof(c), PID_FMT
"\n", pid);
+
xsprintf(c, PID_FMT
"\n", pid);
return write_string_file(fs, c, 0);
}
return write_string_file(fs, c, 0);
}
@@
-736,8
+750,7
@@
int cg_attach_fallback(const char *controller, const char *path, pid_t pid) {
return r;
}
return r;
}
-/// UNNEEDED by elogind
-#if 0
+#if 0 /// UNNEEDED by elogind
int cg_set_group_access(
const char *controller,
const char *path,
int cg_set_group_access(
const char *controller,
const char *path,
@@
-1159,12
+1172,11
@@
int cg_mangle_path(const char *path, char **result) {
if (r < 0)
return r;
if (r < 0)
return r;
- return cg_get_path(c ?
c : SYSTEMD_CGROUP_CONTROLLER, p ? p
: "/", NULL, result);
+ return cg_get_path(c ?
: SYSTEMD_CGROUP_CONTROLLER, p ?
: "/", NULL, result);
}
int cg_get_root_path(char **path) {
}
int cg_get_root_path(char **path) {
-/// elogind does not support systemd scopes and slices
-#if 0
+#if 0 /// elogind does not support systemd scopes and slices
char *p, *e;
int r;
char *p, *e;
int r;
@@
-1254,8
+1266,7
@@
int cg_pid_get_path_shifted(pid_t pid, const char *root, char **cgroup) {
return 0;
}
return 0;
}
-/// UNNEEDED by elogind
-#if 0
+#if 0 /// UNNEEDED by elogind
int cg_path_decode_unit(const char *cgroup, char **unit){
char *c, *s;
size_t n;
int cg_path_decode_unit(const char *cgroup, char **unit){
char *c, *s;
size_t n;
@@
-1574,8
+1585,7
@@
int cg_pid_get_session(pid_t pid, char **session) {
return cg_path_get_session(cgroup, session);
}
return cg_path_get_session(cgroup, session);
}
-/// UNNEEDED by elogind
-#if 0
+#if 0 /// UNNEEDED by elogind
int cg_path_get_owner_uid(const char *path, uid_t *uid) {
_cleanup_free_ char *slice = NULL;
char *start, *end;
int cg_path_get_owner_uid(const char *path, uid_t *uid) {
_cleanup_free_ char *slice = NULL;
char *start, *end;
@@
-1780,8
+1790,7
@@
bool cg_controller_is_valid(const char *p) {
return true;
}
return true;
}
-/// UNNEEDED by elogind
-#if 0
+#if 0 /// UNNEEDED by elogind
int cg_slice_to_path(const char *unit, char **ret) {
_cleanup_free_ char *p = NULL, *s = NULL, *e = NULL;
const char *dash;
int cg_slice_to_path(const char *unit, char **ret) {
_cleanup_free_ char *p = NULL, *s = NULL, *e = NULL;
const char *dash;
@@
-1863,8
+1872,7
@@
int cg_set_attribute(const char *controller, const char *path, const char *attri
return write_string_file(p, value, 0);
}
return write_string_file(p, value, 0);
}
-/// UNNEEDED by elogind
-#if 0
+#if 0 /// UNNEEDED by elogind
int cg_get_attribute(const char *controller, const char *path, const char *attribute, char **ret) {
_cleanup_free_ char *p = NULL;
int r;
int cg_get_attribute(const char *controller, const char *path, const char *attribute, char **ret) {
_cleanup_free_ char *p = NULL;
int r;
@@
-2097,8
+2105,7
@@
int cg_mask_supported(CGroupMask *ret) {
return 0;
}
return 0;
}
-/// UNNEEDED by elogind
-#if 0
+#if 0 /// UNNEEDED by elogind
int cg_kernel_controllers(Set *controllers) {
_cleanup_fclose_ FILE *f = NULL;
char buf[LINE_MAX];
int cg_kernel_controllers(Set *controllers) {
_cleanup_fclose_ FILE *f = NULL;
char buf[LINE_MAX];
@@
-2131,7
+2138,7
@@
int cg_kernel_controllers(Set *controllers) {
if (feof(f))
break;
if (feof(f))
break;
- if (ferror(f) && errno
!=
0)
+ if (ferror(f) && errno
>
0)
return -errno;
return -EBADMSG;
return -errno;
return -EBADMSG;
@@
-2191,8
+2198,7
@@
int cg_unified(void) {
return unified_cache;
}
return unified_cache;
}
-/// UNNEEDED by elogind
-#if 0
+#if 0 /// UNNEEDED by elogind
void cg_unified_flush(void) {
unified_cache = -1;
}
void cg_unified_flush(void) {
unified_cache = -1;
}
@@
-2281,8
+2287,7
@@
bool cg_is_legacy_wanted(void) {
}
#endif // 0
}
#endif // 0
-/// UNNEEDED by elogind
-#if 0
+#if 0 /// UNNEEDED by elogind
int cg_cpu_shares_parse(const char *s, uint64_t *ret) {
uint64_t u;
int r;
int cg_cpu_shares_parse(const char *s, uint64_t *ret) {
uint64_t u;
int r;
@@
-2331,7
+2336,6
@@
static const char *cgroup_controller_table[_CGROUP_CONTROLLER_MAX] = {
[CGROUP_CONTROLLER_MEMORY] = "memory",
[CGROUP_CONTROLLER_DEVICES] = "devices",
[CGROUP_CONTROLLER_PIDS] = "pids",
[CGROUP_CONTROLLER_MEMORY] = "memory",
[CGROUP_CONTROLLER_DEVICES] = "devices",
[CGROUP_CONTROLLER_PIDS] = "pids",
- [CGROUP_CONTROLLER_NET_CLS] = "net_cls",
};
DEFINE_STRING_TABLE_LOOKUP(cgroup_controller, CGroupController);
};
DEFINE_STRING_TABLE_LOOKUP(cgroup_controller, CGroupController);