Thread (72 messages) 72 messages, 8 authors, 2021-07-07

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 Al
quoted
-----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];
Christian
quoted
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>
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help