diff options
| author | Anton Protopopov <aspsk@isovalent.com> | 2024-12-13 13:09:28 +0000 |
|---|---|---|
| committer | Andrii Nakryiko <andrii@kernel.org> | 2024-12-13 14:45:58 -0800 |
| commit | 4e885fab7164689f031a6c73522a3d91674c5bdc (patch) | |
| tree | 8cf0738eed8aec1712d2153ad10ab9cf0193e1e8 /kernel/bpf/btf.c | |
| parent | 6a10d2d3613fed501ae9c164cb1c4335e11cb714 (diff) | |
bpf: Add a __btf_get_by_fd helper
Add a new helper to get a pointer to a struct btf from a file
descriptor. This helper doesn't increase a refcnt. Add a comment
explaining this and pointing to a corresponding function which
does take a reference.
Signed-off-by: Anton Protopopov <aspsk@isovalent.com>
Signed-off-by: Andrii Nakryiko <andrii@kernel.org>
Acked-by: Andrii Nakryiko <andrii@kernel.org>
Link: https://lore.kernel.org/bpf/20241213130934.1087929-2-aspsk@isovalent.com
Diffstat (limited to 'kernel/bpf/btf.c')
| -rw-r--r-- | kernel/bpf/btf.c | 11 |
1 files changed, 3 insertions, 8 deletions
diff --git a/kernel/bpf/btf.c b/kernel/bpf/btf.c index e7a59e6462a9..2ef4fef71910 100644 --- a/kernel/bpf/btf.c +++ b/kernel/bpf/btf.c @@ -7746,14 +7746,9 @@ struct btf *btf_get_by_fd(int fd) struct btf *btf; CLASS(fd, f)(fd); - if (fd_empty(f)) - return ERR_PTR(-EBADF); - - if (fd_file(f)->f_op != &btf_fops) - return ERR_PTR(-EINVAL); - - btf = fd_file(f)->private_data; - refcount_inc(&btf->refcnt); + btf = __btf_get_by_fd(f); + if (!IS_ERR(btf)) + refcount_inc(&btf->refcnt); return btf; } |