mirror of
https://github.com/systemd/systemd
synced 2024-10-04 23:31:09 +00:00
core: fix bpf-foreign cg controller realization
Requiring /sys/fs/bpf path to be a mount point at the moment of cgroup controllers realization does more harm than good, because: * Realization happens early on boot, the mount point may not be ready at the time. That happens if mounts are made by a .mount unit (the issue we encountered). * BPF filesystem may be mounted on another point. Remove the check. Instead verify that path provided by BPFProgram= is within BPF fs when unit properties are parsed. Split in two commits for simple backport.
This commit is contained in:
parent
a704137c20
commit
084d0849fc
|
@ -111,16 +111,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,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.
|
||||
|
|
Loading…
Reference in a new issue