cgroup_lsm_atype
for (i = 0; i < ARRAY_SIZE(cgroup_lsm_atype); i++)
if (cgroup_lsm_atype[i].attach_btf_id == attach_btf_id)
for (i = 0; i < ARRAY_SIZE(cgroup_lsm_atype); i++)
if (cgroup_lsm_atype[i].attach_btf_id == 0)
if (!cgroup_lsm_atype[i].attach_btf_id) {
cgroup_lsm_atype[i].attach_btf_id = attach_btf_id;
WRITE_ONCE(cgroup_lsm_atype[i].returns_errno,
WARN_ON_ONCE(cgroup_lsm_atype[i].attach_btf_id != attach_btf_id);
cgroup_lsm_atype[i].refcnt++;
if (--cgroup_lsm_atype[i].refcnt <= 0) {
WRITE_ONCE(cgroup_lsm_atype[i].returns_errno, true);
cgroup_lsm_atype[i].attach_btf_id = 0;
WARN_ON_ONCE(cgroup_lsm_atype[i].refcnt < 0);
static struct cgroup_lsm_atype cgroup_lsm_atype[CGROUP_LSM_NUM];
return READ_ONCE(cgroup_lsm_atype[atype - CGROUP_LSM_START].returns_errno);