diff options
author | Al Viro <viro@zeniv.linux.org.uk> | 2021-05-17 21:43:01 -0400 |
---|---|---|
committer | Al Viro <viro@zeniv.linux.org.uk> | 2021-05-18 20:08:10 -0400 |
commit | 9024348f539f810e83695df486443f45362e947a (patch) | |
tree | 11a1878019fe2c4a26d3914858ac8b463d39afd7 /fs/d_path.c | |
parent | 3acca043261fa6268961d152ea2505e217eabcba (diff) |
d_path: get rid of path_with_deleted()
expand in the sole caller; transform the initial prepends similar to
what we'd done in dentry_path() (prepend_path() will fail the right
way if we call it with negative buflen, same as __dentry_path() does).
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Diffstat (limited to 'fs/d_path.c')
-rw-r--r-- | fs/d_path.c | 23 |
1 files changed, 5 insertions, 18 deletions
diff --git a/fs/d_path.c b/fs/d_path.c index b3324ae7cfe2..7f3fac544bbb 100644 --- a/fs/d_path.c +++ b/fs/d_path.c @@ -211,23 +211,6 @@ char *d_absolute_path(const struct path *path, return res; } -/* - * same as __d_path but appends "(deleted)" for unlinked files. - */ -static int path_with_deleted(const struct path *path, - const struct path *root, - char **buf, int *buflen) -{ - prepend(buf, buflen, "", 1); - if (d_unlinked(path->dentry)) { - int error = prepend(buf, buflen, " (deleted)", 10); - if (error) - return error; - } - - return prepend_path(path, root, buf, buflen); -} - static int prepend_unreachable(char **buffer, int *buflen) { return prepend(buffer, buflen, "(unreachable)", 13); @@ -282,7 +265,11 @@ char *d_path(const struct path *path, char *buf, int buflen) rcu_read_lock(); get_fs_root_rcu(current->fs, &root); - error = path_with_deleted(path, &root, &res, &buflen); + if (unlikely(d_unlinked(path->dentry))) + prepend(&res, &buflen, " (deleted)", 11); + else + prepend(&res, &buflen, "", 1); + error = prepend_path(path, &root, &res, &buflen); rcu_read_unlock(); if (error < 0) |