Re: [PATCH v5 0/4] make '%pD' print the full path of file

From: Andy Shevchenko
Date: Tue Jun 22 2021 - 10:43:42 EST


On Tue, Jun 22, 2021 at 10:06:30PM +0800, Jia He wrote:
> Background
> ==========
> Linus suggested printing the full path of file instead of printing
> the components as '%pd'.
>
> Typically, there is no need for printk specifiers to take any real locks
> (ie mount_lock or rename_lock). So I introduce a new helper d_path_fast
> which is similar to d_path except it doesn't take any seqlock/spinlock.
>
> This series is based on Al Viro's d_path cleanup patches [1] which
> lifted the inner lockless loop into a new helper.
>
> Link: https://lkml.org/lkml/2021/5/18/1260 [1]
>
> Test
> ====
> The cases I tested:
> 1. print '%pD' with full path of ext4 file
> 2. mount a ext4 filesystem upon a ext4 filesystem, and print the file
> with '%pD'
> 3. all test_print selftests, including the new '%14pD' '%-14pD'

> 4. kasnprintf

I believe you are talking about kasprintf().


> Changelog
> =========
> v5:
> - remove the RFC tag

JFYI, when we drop RFC we usually start the series from v1.

> - refine the commit msg/comments(by Petr, Andy)
> - make using_scratch_space a new parameter of the test case

Thanks for the update, I have found few minor things, please address them and
feel free to add
Reviewed-by: Andy Shevchenko <andriy.shevchenko@xxxxxxxxxxxxxxx>

> v4:
> - don't support spec.precision anymore for '%pD'
> - add Rasmus's patch into this series
>
> v3:
> - implement new d_path_unsafe to use [buf, end] instead of stack space for
> filling bytes (by Matthew)
> - add new test cases for '%pD'
> - drop patch "hmcdrv: remove the redundant directory path" before removing rfc.
>
> v2:
> - implement new d_path_fast based on Al Viro's patches
> - add check_pointer check (by Petr)
> - change the max full path size to 256 in stack space
>
> v1: https://lkml.org/lkml/2021/5/8/122
>
>
> Jia He (3):
> fs: introduce helper d_path_unsafe()
> lib/vsprintf.c: make '%pD' print the full path of file
> lib/test_printf.c: add test cases for '%pD'
>
> Rasmus Villemoes (1):
> lib/test_printf.c: split write-beyond-buffer check in two
>
> Documentation/core-api/printk-formats.rst | 5 +-
> fs/d_path.c | 104 +++++++++++++++++++++-
> include/linux/dcache.h | 1 +
> lib/test_printf.c | 54 ++++++++---
> lib/vsprintf.c | 40 ++++++++-
> 5 files changed, 184 insertions(+), 20 deletions(-)
>
> --
> 2.17.1
>

--
With Best Regards,
Andy Shevchenko