[PATCH RFC 0/3] make '%pD' print full path for file

Jia He
2021-05-08T12:29:14Z

At [1], Linux suggested printing full path for 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 not taking any seqlock/spinlock.

The cases I tested:
1. print %pD with full path when opening a ext4 file
2. mount a ext4 filesystem upon a ext4 filesystem, and print the file
with %pD
3. print the file full path which has more than 128 chars
4. all test_print selftests

After this set, I noticed there are many lines which contained "%pD[234]"
that should be changed to "%pD". I don't want to involve those
subsystems in this patch series before the helper is satisfied with
everyone.

You can get the lines by
$find fs/ -name \*.[ch] | xargs grep -rn "\%pD[234]"

[1] https://lore.kernel.org/lkml/CAHk-=wimsMqGdzik187YWLb-ru+iktb4MYbMQG1rnZ81dXYFVg@mail.gmail.com/

Jia He (3):
fs: introduce helper d_path_fast()
lib/vsprintf.c: make %pD print full path for file
s390/hmcdrv: remove the redundant directory path in debug message

Documentation/core-api/printk-formats.rst | 5 ++-
drivers/s390/char/hmcdrv_dev.c | 10 ++---
fs/d_path.c | 51 +++++++++++++++++------
include/linux/dcache.h | 1 +
lib/vsprintf.c | 12 +++++-
5 files changed, 58 insertions(+), 21 deletions(-)

--
2.17.1