summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAl Viro <viro@zeniv.linux.org.uk>2025-12-06 21:01:06 +0300
committerAl Viro <viro@zeniv.linux.org.uk>2026-01-16 20:52:03 +0300
commit904f58b50711babeb6e1383701e27d40a336908c (patch)
tree7bf0498b35cdc2fea0b8d0be42c5049e863bcebc
parente9817d5b8c32b64d40b0c0ffcd0dc67ce77e2aca (diff)
downloadlinux-904f58b50711babeb6e1383701e27d40a336908c.tar.xz
namei.c: switch user pathname imports to CLASS(filename{,_flags})
filename_flags is used by user_path_at(). I suspect that mixing LOOKUP_EMPTY with real lookup flags had been a mistake all along; the former belongs to pathname import, the latter - to pathwalk. Right now none of the remaining in-tree callers of user_path_at() are getting LOOKUP_EMPTY in flags, so user_path_at() could probably be switched to CLASS(filename)... Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
-rw-r--r--fs/namei.c21
1 files changed, 6 insertions, 15 deletions
diff --git a/fs/namei.c b/fs/namei.c
index 1158beb9a399..25c786ab0542 100644
--- a/fs/namei.c
+++ b/fs/namei.c
@@ -3031,11 +3031,8 @@ struct dentry *start_removing_user_path_at(int dfd,
const char __user *name,
struct path *path)
{
- struct filename *filename = getname(name);
- struct dentry *res = __start_removing_path(dfd, filename, path);
-
- putname(filename);
- return res;
+ CLASS(filename, filename)(name);
+ return __start_removing_path(dfd, filename, path);
}
EXPORT_SYMBOL(start_removing_user_path_at);
@@ -3613,11 +3610,8 @@ int path_pts(struct path *path)
int user_path_at(int dfd, const char __user *name, unsigned flags,
struct path *path)
{
- struct filename *filename = getname_flags(name, flags);
- int ret = filename_lookup(dfd, filename, flags, path, NULL);
-
- putname(filename);
- return ret;
+ CLASS(filename_flags, filename)(name, flags);
+ return filename_lookup(dfd, filename, flags, path, NULL);
}
EXPORT_SYMBOL(user_path_at);
@@ -4976,11 +4970,8 @@ inline struct dentry *start_creating_user_path(
int dfd, const char __user *pathname,
struct path *path, unsigned int lookup_flags)
{
- struct filename *filename = getname(pathname);
- struct dentry *res = filename_create(dfd, filename, path, lookup_flags);
-
- putname(filename);
- return res;
+ CLASS(filename, filename)(pathname);
+ return filename_create(dfd, filename, path, lookup_flags);
}
EXPORT_SYMBOL(start_creating_user_path);