This series adds support to libbpf for reading 'pinning' settings from BTF-based map definitions. It introduces a new bpf_object__pin_maps_opts() function which accepts options with the new options struct definition style. This allows the caller to configure the pinning path, and to use both old-style "forced pinning" where all defined maps are pinned, and the new pinning that is based on the BTF attribute. The actual semantics of the pinning is similar to the iproute2 "PIN_GLOBAL" setting, and the eventual goal is to move the iproute2 implementation to be based on libbpf and the functions introduced in this series. Changelog: v2: - Drop patch that adds mounting of bpffs - Only support a single value of the pinning attribute - Add patch to fixup error handling in reuse_fd() - Implement the full automatic pinning and map reuse logic on load --- Toke Høiland-Jørgensen (4): libbpf: Fix error handling in bpf_map__reuse_fd() libbpf: Store map pin path and status in struct bpf_map libbpf: Support configurable pinning of maps from BTF annotations libbpf: Add option to auto-pin maps when opening BPF object tools/lib/bpf/bpf_helpers.h | 6 + tools/lib/bpf/libbpf.c | 379 +++++++++++++++++++++++++++++++++++++------ tools/lib/bpf/libbpf.h | 33 ++++ tools/lib/bpf/libbpf.map | 6 + 4 files changed, 366 insertions(+), 58 deletions(-)