Messages in this thread Patch in this message | | | From | Al Viro <> | Subject | [PATCH 11/14] d_path: prepend_path(): lift resetting b in case when we'd return 3 out of loop | Date | Wed, 19 May 2021 00:48:58 +0000 |
| |
preparation to extracting the loop into helper (next commit)
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk> --- fs/d_path.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/fs/d_path.c b/fs/d_path.c index 3836f5d0b023..9a0356cc98d3 100644 --- a/fs/d_path.c +++ b/fs/d_path.c @@ -115,7 +115,6 @@ static int prepend_path(const struct path *path, /* Escaped? */ if (dentry != mnt->mnt.mnt_root) { - b = *p; error = 3; break; } @@ -156,6 +155,9 @@ static int prepend_path(const struct path *path, } done_seqretry(&mount_lock, m_seq); + if (unlikely(error == 3)) + b = *p; + if (b.len == p->len) prepend(&b, "/", 1); -- 2.11.0
| |