bpf: Fail BPF_TOKEN_CREATE if no delegation option was set on BPF FS
authorAndrii Nakryiko <andrii@kernel.org>
Wed, 24 Jan 2024 02:21:15 +0000 (18:21 -0800)
committerAlexei Starovoitov <ast@kernel.org>
Thu, 25 Jan 2024 00:21:02 +0000 (16:21 -0800)
commitaeaa97b006ddc7a8bf13e4adfdd02b3526f648a7
treeb3ccdcf15c0f24c2ba9ecaf3d3b1808984dfefaa
parent0054493e5141b16e316b8c52d6aa534397e48b6c
bpf: Fail BPF_TOKEN_CREATE if no delegation option was set on BPF FS

It's quite confusing in practice when it's possible to successfully
create a BPF token from BPF FS that didn't have any of delegate_xxx
mount options set up. While it's not wrong, it's actually more
meaningful to reject BPF_TOKEN_CREATE with specific error code (-ENOENT)
to let user-space know that no token delegation is setup up.

So, instead of creating empty BPF token that will be always ignored
because it doesn't have any of the allow_xxx bits set, reject it with
-ENOENT. If we ever need empty BPF token to be possible, we can support
that with extra flag passed into BPF_TOKEN_CREATE.

Signed-off-by: Andrii Nakryiko <andrii@kernel.org>
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
Acked-by: Christian Brauner <brauner@kernel.org>
Acked-by: John Fastabend <john.fastabend@gmail.com>
Link: https://lore.kernel.org/bpf/20240124022127.2379740-19-andrii@kernel.org
kernel/bpf/token.c