RE: [PATCH 02/14] d_path: saner calling conventions for __dentry_path()
From: Justin He <hidden>
Date: 2021-07-07 04:53:00
Also in:
linux-fsdevel, linux-s390, lkml
-----Original Message----- From: Justin He Sent: Friday, June 25, 2021 5:33 PM To: Al Viro <viro@zeniv.linux.org.uk>; Linus Torvalds <torvalds@linux- foundation.org> Cc: Petr Mladek <pmladek@suse.com>; Steven Rostedt <rostedt@goodmis.org>; Sergey Senozhatsky [off-list ref]; Andy Shevchenko [off-list ref]; Rasmus Villemoes [off-list ref]; Jonathan Corbet [off-list ref]; Heiko Carstens [off-list ref]; Vasily Gorbik [off-list ref]; Christian Borntraeger [off-list ref]; Eric W . Biederman [off-list ref]; Darrick J. Wong [off-list ref]; Peter Zijlstra (Intel) [off-list ref]; Ira Weiny [off-list ref]; Eric Biggers [off-list ref]; Ahmed S. Darwish [off-list ref]; open list:DOCUMENTATION <linux- doc@vger.kernel.org>; Linux Kernel Mailing List <linux- kernel@vger.kernel.org>; linux-s390 [off-list ref]; linux- fsdevel [off-list ref] Subject: RE: [PATCH 02/14] d_path: saner calling conventions for __dentry_path() Hi Alquoted
-----Original Message----- From: Al Viro <redacted> On Behalf Of Al Viro Sent: Wednesday, May 19, 2021 8:49 AM To: Linus Torvalds <torvalds@linux-foundation.org> Cc: Justin He <redacted>; Petr Mladek <pmladek@suse.com>; Steven Rostedt [off-list ref]; Sergey Senozhatsky [off-list ref]; Andy Shevchenko [off-list ref]; Rasmus Villemoes [off-list ref]; Jonathan Corbet [off-list ref]; Heiko Carstens [off-list ref]; Vasily Gorbik [off-list ref];Christianquoted
Borntraeger [off-list ref]; Eric W . Biederman [off-list ref]; Darrick J. Wong [off-list ref]; Peter Zijlstra (Intel) [off-list ref]; Ira Weiny [off-list ref]; Eric Biggers [off-list ref]; Ahmed S. Darwish [off-list ref]; open list:DOCUMENTATION <linux- doc@vger.kernel.org>; Linux Kernel Mailing List <linux- kernel@vger.kernel.org>; linux-s390 [off-list ref]; linux- fsdevel [off-list ref] Subject: [PATCH 02/14] d_path: saner calling conventions for__dentry_path()quoted
1) lift NUL-termination into the callers 2) pass pointer to the end of buffer instead of that to beginning. (1) allows to simplify dentry_path() - we don't need to play silly games with restoring the leading / of "//deleted" after __dentry_path() would've overwritten it with NUL. We also do not need to check if (either) prepend() in there fails - if the buffer is not large enough, we'll end with negative buflen after prepend() and __dentry_path() will return the right value (ERR_PTR(-ENAMETOOLONG)) just fine. Signed-off-by: Al Viro <viro@zeniv.linux.org.uk> --- fs/d_path.c | 33 +++++++++++++-------------------- 1 file changed, 13 insertions(+), 20 deletions(-)diff --git a/fs/d_path.c b/fs/d_path.c index 01df5dfa1f88..1a1cf05e7780 100644 --- a/fs/d_path.c +++ b/fs/d_path.c@@ -326,22 +326,21 @@ char *simple_dname(struct dentry *dentry, char*buffer, int buflen) /* * Write full pathname from the root of the filesystem into the buffer. */I suggest adding the comments to remind NUL terminator should be prepended before invoking __dentry_path()
Except for my suggestion about adding comments Reviewed-by: Jia He <redacted>