Message ID | 20210615154952.2744-1-justin.he@arm.com (mailing list archive) |
---|---|
Headers | show |
Series | make '%pD' print full path for file | expand |
On Tue, Jun 15, 2021 at 6:54 PM Jia He <justin.he@arm.com> wrote: > > Background > ========== > Linus suggested printing full path for file instead of printing the full the file > 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. > > [1] https://lkml.org/lkml/2021/5/18/1260 > > 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 kasprintf() After commenting on patch 1, I suggest you to always build with `make W=1 ...` > Changelog > ========= > 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 (4): > fs: introduce helper d_path_unsafe() > lib/vsprintf.c: make '%pD' print full path for file > lib/test_printf.c: split write-beyond-buffer check in two > lib/test_printf.c: add test cases for '%pD' > > Documentation/core-api/printk-formats.rst | 5 +- > fs/d_path.c | 83 ++++++++++++++++++++++- > include/linux/dcache.h | 1 + > lib/test_printf.c | 31 ++++++++- > lib/vsprintf.c | 37 ++++++++-- > 5 files changed, 148 insertions(+), 9 deletions(-) > > -- > 2.17.1 >
Btw, please throw in a patch to convert iomap_swapfile_fail over to the new %pD as that started the whole flamewar^H^H^H^H^H^H^Hdiscussion.
Hi Christoph > -----Original Message----- > From: Christoph Hellwig <hch@infradead.org> > Sent: Wednesday, June 16, 2021 1:09 PM > To: Justin He <Justin.He@arm.com> > Cc: Petr Mladek <pmladek@suse.com>; Steven Rostedt <rostedt@goodmis.org>; > Sergey Senozhatsky <senozhatsky@chromium.org>; Andy Shevchenko > <andriy.shevchenko@linux.intel.com>; Rasmus Villemoes > <linux@rasmusvillemoes.dk>; Jonathan Corbet <corbet@lwn.net>; Alexander > Viro <viro@zeniv.linux.org.uk>; Linus Torvalds <torvalds@linux- > foundation.org>; Peter Zijlstra (Intel) <peterz@infradead.org>; Eric > Biggers <ebiggers@google.com>; Ahmed S. Darwish <a.darwish@linutronix.de>; > linux-doc@vger.kernel.org; linux-kernel@vger.kernel.org; linux- > fsdevel@vger.kernel.org; Matthew Wilcox <willy@infradead.org> > Subject: Re: [PATCH RFCv4 0/4] make '%pD' print full path for file > > Btw, please throw in a patch to convert iomap_swapfile_fail over to > the new %pD as that started the whole flamewar^H^H^H^H^H^H^Hdiscussion. Ok, thanks for the reminder. After all of the solution/helper/interface is stable (maybe after removing RFC), I tend to add more patches: 1. s390/hmcdrv: remove the redundant directory after using '%pD' 2. remove all the '%pD[2,3,4]' usage in fs/ 3. your mentioned iomap_swapfile_fail -- Cheers, Justin (Jia He)