On Sat, Aug 01, 2020 at 08:13:42PM -0700, Alexei Starovoitov wrote: > On Sat, Aug 01, 2020 at 07:03:18PM +0200, Jiri Olsa wrote: > > Adding d_path helper function that returns full path for > > given 'struct path' object, which needs to be the kernel > > BTF 'path' object. The path is returned in buffer provided > > 'buf' of size 'sz' and is zero terminated. > > > > bpf_d_path(&file->f_path, buf, size); > > > > The helper calls directly d_path function, so there's only > > limited set of function it can be called from. Adding just > > very modest set for the start. > > > > Updating also bpf.h tools uapi header and adding 'path' to > > bpf_helpers_doc.py script. > > > > Signed-off-by: Jiri Olsa <jolsa@xxxxxxxxxx> > > --- > > include/uapi/linux/bpf.h | 13 +++++++++ > > kernel/trace/bpf_trace.c | 48 ++++++++++++++++++++++++++++++++++ > > scripts/bpf_helpers_doc.py | 2 ++ > > tools/include/uapi/linux/bpf.h | 13 +++++++++ > > 4 files changed, 76 insertions(+) > > > > diff --git a/include/uapi/linux/bpf.h b/include/uapi/linux/bpf.h > > index eb5e0c38eb2c..a356ea1357bf 100644 > > --- a/include/uapi/linux/bpf.h > > +++ b/include/uapi/linux/bpf.h > > @@ -3389,6 +3389,18 @@ union bpf_attr { > > * A non-negative value equal to or less than *size* on success, > > * or a negative error in case of failure. > > * > > + * int bpf_d_path(struct path *path, char *buf, u32 sz) > > Please make it return 'long'. As you well ware the generated code will be better. > will do, thanks jirka