The use case is to tag directories with xattr. For example, "user.allow_x" tag on /bin would allow execution of all files under /bin. To achieve this, we start from the security_file_open() hook and read xattr of all the parent directories. 4 kfuncs are added in this set: bpf_get_dentry_xattr bpf_file_dentry bpf_dget_parent bpf_dput The first is used to read xattr from dentry; while the other 3 are used to walk the directory tree. Note that, these functions are only allowed from LSM hooks. Song Liu (2): bpf: Add kfunc bpf_get_dentry_xattr() to read xattr from dentry selftests/bpf: Add tests for bpf_get_dentry_xattr kernel/trace/bpf_trace.c | 60 +++++++++++++++--- .../selftests/bpf/prog_tests/fs_kfuncs.c | 61 +++++++++++++++++-- .../selftests/bpf/progs/test_dentry_xattr.c | 46 ++++++++++++++ .../selftests/bpf/progs/test_get_xattr.c | 16 ++++- 4 files changed, 168 insertions(+), 15 deletions(-) create mode 100644 tools/testing/selftests/bpf/progs/test_dentry_xattr.c -- 2.43.0