[PATCH bpf-next] bpf_doc: Support 1st const parameter of bpf_d_path()

Rong Tao posted 1 patch 2 months, 2 weeks ago
include/uapi/linux/bpf.h                                | 2 +-
scripts/bpf_doc.py                                      | 1 +
tools/include/uapi/linux/bpf.h                          | 2 +-
tools/testing/selftests/bpf/progs/verifier_vfs_accept.c | 2 +-
4 files changed, 4 insertions(+), 3 deletions(-)
[PATCH bpf-next] bpf_doc: Support 1st const parameter of bpf_d_path()
Posted by Rong Tao 2 months, 2 weeks ago
From: Rong Tao <rongtao@cestc.cn>

Since commit 1b8abbb12128 ("bpf...d_path(): constify path argument"),
the first parameter of the bpf_d_path() has been changed to a const
constant. We need to modify the header file and bpf_doc.py.

The two error messages are as follows:

    linux/tools/testing/selftests/bpf$ make

      CLNG-BPF [test_progs] bpf_iter_task_vmas.bpf.o
    progs/bpf_iter_task_vmas.c:52:14: error: passing 'const struct path *'
    to parameter of type 'struct path *' discards qualifiers
    [-Werror,-Wincompatible-pointer-types-discards-qualifiers]
       52 |                 bpf_d_path(&file->f_path, d_path_buf, D_PATH_BUF_SIZE);
          |                            ^~~~~~~~~~~~~
    1 error generated.
    ....
    progs/verifier_vfs_accept.c:80:7: error: assigning to 'struct path *'
    from 'const struct path *' discards qualifiers
    [-Werror,-Wincompatible-pointer-types-discards-qualifiers]
       80 |         path = &file->f_path;
          |              ^ ~~~~~~~~~~~~~
    1 error generated.

Fixes: 1b8abbb12128 ("bpf...d_path(): constify path argument")
Signed-off-by: Rong Tao <rongtao@cestc.cn>
---
 include/uapi/linux/bpf.h                                | 2 +-
 scripts/bpf_doc.py                                      | 1 +
 tools/include/uapi/linux/bpf.h                          | 2 +-
 tools/testing/selftests/bpf/progs/verifier_vfs_accept.c | 2 +-
 4 files changed, 4 insertions(+), 3 deletions(-)

diff --git a/include/uapi/linux/bpf.h b/include/uapi/linux/bpf.h
index ae83d8649ef1..6829936d33f5 100644
--- a/include/uapi/linux/bpf.h
+++ b/include/uapi/linux/bpf.h
@@ -4891,7 +4891,7 @@ union bpf_attr {
  *
  *		**-ENOENT** if the bpf_local_storage cannot be found.
  *
- * long bpf_d_path(struct path *path, char *buf, u32 sz)
+ * long bpf_d_path(const struct path *path, char *buf, u32 sz)
  *	Description
  *		Return full path for given **struct path** object, which
  *		needs to be the kernel BTF *path* object. The path is
diff --git a/scripts/bpf_doc.py b/scripts/bpf_doc.py
index c77dc40f7689..15d113a1bc1d 100755
--- a/scripts/bpf_doc.py
+++ b/scripts/bpf_doc.py
@@ -788,6 +788,7 @@ class PrinterHelpersHeader(Printer):
             'struct task_struct',
             'struct cgroup',
             'struct path',
+            'const struct path',
             'struct btf_ptr',
             'struct inode',
             'struct socket',
diff --git a/tools/include/uapi/linux/bpf.h b/tools/include/uapi/linux/bpf.h
index ae83d8649ef1..6829936d33f5 100644
--- a/tools/include/uapi/linux/bpf.h
+++ b/tools/include/uapi/linux/bpf.h
@@ -4891,7 +4891,7 @@ union bpf_attr {
  *
  *		**-ENOENT** if the bpf_local_storage cannot be found.
  *
- * long bpf_d_path(struct path *path, char *buf, u32 sz)
+ * long bpf_d_path(const struct path *path, char *buf, u32 sz)
  *	Description
  *		Return full path for given **struct path** object, which
  *		needs to be the kernel BTF *path* object. The path is
diff --git a/tools/testing/selftests/bpf/progs/verifier_vfs_accept.c b/tools/testing/selftests/bpf/progs/verifier_vfs_accept.c
index 3e2d76ee8050..55398c04290a 100644
--- a/tools/testing/selftests/bpf/progs/verifier_vfs_accept.c
+++ b/tools/testing/selftests/bpf/progs/verifier_vfs_accept.c
@@ -70,7 +70,7 @@ __success
 int BPF_PROG(path_d_path_from_file_argument, struct file *file)
 {
 	int ret;
-	struct path *path;
+	const struct path *path;
 
 	/* The f_path member is a path which is embedded directly within a
 	 * file. Therefore, a pointer to such embedded members are still
-- 
2.51.0
Re: [PATCH bpf-next] bpf_doc: Support 1st const parameter of bpf_d_path()
Posted by Alexei Starovoitov 2 months, 2 weeks ago
On Sat, Oct 4, 2025 at 7:24 AM Rong Tao <rtoax@foxmail.com> wrote:
>
> From: Rong Tao <rongtao@cestc.cn>
>
> Since commit 1b8abbb12128 ("bpf...d_path(): constify path argument"),
> the first parameter of the bpf_d_path() has been changed to a const
> constant. We need to modify the header file and bpf_doc.py.

...

> Fixes: 1b8abbb12128 ("bpf...d_path(): constify path argument")
> Signed-off-by: Rong Tao <rongtao@cestc.cn>

Thanks. I reworded the commit message and applied it to the bpf tree.