From: Tao Chen Date: Tue, 2 Jul 2024 13:11:50 +0000 (+0800) Subject: bpftool: Mount bpffs when pinmaps path not under the bpffs X-Git-Tag: v6.11-rc1~163^2~68^2~21 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=da5f8fd1f0d393d5eaaba9ad8c22d1c26bb2bf9b;p=thirdparty%2Fkernel%2Flinux.git bpftool: Mount bpffs when pinmaps path not under the bpffs As Quentin said [0], BPF map pinning will fail if the pinmaps path is not under the bpffs, like: libbpf: specified path /home/ubuntu/test/sock_ops_map is not on BPF FS Error: failed to pin all maps [0] https://github.com/libbpf/bpftool/issues/146 Fixes: 3767a94b3253 ("bpftool: add pinmaps argument to the load/loadall") Signed-off-by: Tao Chen Signed-off-by: Daniel Borkmann Tested-by: Quentin Monnet Reviewed-by: Quentin Monnet Link: https://lore.kernel.org/bpf/20240702131150.15622-1-chen.dylane@gmail.com --- diff --git a/tools/bpf/bpftool/prog.c b/tools/bpf/bpftool/prog.c index 1a501cf09e782..40ea743d139fd 100644 --- a/tools/bpf/bpftool/prog.c +++ b/tools/bpf/bpftool/prog.c @@ -1813,6 +1813,10 @@ offload_dev: } if (pinmaps) { + err = create_and_mount_bpffs_dir(pinmaps); + if (err) + goto err_unpin; + err = bpf_object__pin_maps(obj, pinmaps); if (err) { p_err("failed to pin all maps");