Merge pull request #21241 from wat-ze-hex/2021-11-04-fix-bpf-foreign-realization

core, bpf: fix bpf-foreign cgroup controller realization
This commit is contained in:
Luca Boccassi
2021-11-11 18:49:50 +00:00
committed by GitHub
2 changed files with 14 additions and 11 deletions
+10 -10
View File
@@ -4,8 +4,10 @@
#include "bpf-program.h"
#include "cgroup.h"
#include "memory-util.h"
#include "missing_magic.h"
#include "mountpoint-util.h"
#include "set.h"
#include "stat-util.h"
typedef struct BPFForeignKey BPFForeignKey;
struct BPFForeignKey {
@@ -84,6 +86,14 @@ static int bpf_foreign_prepare(
assert(u);
assert(bpffs_path);
r = path_is_fs_type(bpffs_path, BPF_FS_MAGIC);
if (r < 0)
return log_unit_error_errno(u, r,
"Failed to determine filesystem type of %s: %m", bpffs_path);
if (r == 0)
return log_unit_error_errno(u, SYNTHETIC_ERRNO(EINVAL),
"Path in BPF filesystem is expected.");
r = bpf_program_new_from_bpffs_path(bpffs_path, &prog);
if (r < 0)
return log_unit_error_errno(u, r, "Failed to create foreign BPFProgram: %m");
@@ -111,16 +121,6 @@ static int bpf_foreign_prepare(
return 0;
}
int bpf_foreign_supported(void) {
int r;
r = cg_all_unified();
if (r <= 0)
return r;
return path_is_mount_point("/sys/fs/bpf", NULL, 0);
}
int bpf_foreign_install(Unit *u) {
_cleanup_free_ char *cgroup_path = NULL;
CGroupBPFForeignProgram *p;
+4 -1
View File
@@ -4,7 +4,10 @@
#include "unit.h"
int bpf_foreign_supported(void);
static inline int bpf_foreign_supported(void) {
return cg_all_unified();
}
/*
* Attach cgroup-bpf programs foreign to systemd, i.e. loaded to the kernel by an entity
* external to systemd.