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: 3767a94b32 ("bpftool: add pinmaps argument to the load/loadall")
Signed-off-by: Tao Chen <chen.dylane@gmail.com>
Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
Tested-by: Quentin Monnet <qmo@kernel.org>
Reviewed-by: Quentin Monnet <qmo@kernel.org>
Link: https://lore.kernel.org/bpf/20240702131150.15622-1-chen.dylane@gmail.com
This commit is contained in:
Tao Chen 2024-07-02 21:11:50 +08:00 committed by Daniel Borkmann
parent 9474f72cd6
commit da5f8fd1f0

View File

@ -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");