* [viro-vfs:work.xattr 9/9] fs/xattr.c:971:28: error: use of undeclared identifier 'pathname'; did you mean 'putname'?
@ 2024-10-01 6:00 kernel test robot
0 siblings, 0 replies; only message in thread
From: kernel test robot @ 2024-10-01 6:00 UTC (permalink / raw)
To: Christian Göttsche
Cc: llvm, oe-kbuild-all, linux-fsdevel, Al Viro, Arnd Bergmann,
Christian Brauner
tree: https://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs.git work.xattr
head: 242dce7f3a28f84e733f16d29368cedf91feccf3
commit: 242dce7f3a28f84e733f16d29368cedf91feccf3 [9/9] fs/xattr: add *at family syscalls
config: s390-allnoconfig (https://download.01.org/0day-ci/archive/20241001/202410011312.c884e7lp-lkp@intel.com/config)
compiler: clang version 20.0.0git (https://github.com/llvm/llvm-project 7773243d9916f98ba0ffce0c3a960e4aa9f03e81)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20241001/202410011312.c884e7lp-lkp@intel.com/reproduce)
If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202410011312.c884e7lp-lkp@intel.com/
All errors (new ones prefixed by >>):
In file included from fs/xattr.c:15:
In file included from include/linux/xattr.h:18:
In file included from include/linux/mm.h:2213:
include/linux/vmstat.h:518:36: warning: arithmetic between different enumeration types ('enum node_stat_item' and 'enum lru_list') [-Wenum-enum-conversion]
518 | return node_stat_name(NR_LRU_BASE + lru) + 3; // skip "nr_"
| ~~~~~~~~~~~ ^ ~~~
>> fs/xattr.c:971:28: error: use of undeclared identifier 'pathname'; did you mean 'putname'?
971 | error = user_path_at(dfd, pathname, lookup_flags, &path);
| ^~~~~~~~
| putname
include/linux/fs.h:2769:13: note: 'putname' declared here
2769 | extern void putname(struct filename *name);
| ^
fs/xattr.c:990:10: warning: unused variable 'error' [-Wunused-variable]
990 | ssize_t error;
| ^~~~~
>> fs/xattr.c:1092:37: error: incompatible pointer types passing 'struct xattr_name *' to parameter of type 'const char *' [-Werror,-Wincompatible-pointer-types]
1092 | fd_file(f)->f_path.dentry, &kname);
| ^~~~~~
fs/xattr.c:1037:68: note: passing argument to parameter 'name' here
1037 | removexattr(struct mnt_idmap *idmap, struct dentry *d, const char *name)
| ^
>> fs/xattr.c:1097:2: error: use of undeclared identifier 'lookup_flags'
1097 | lookup_flags = (at_flags & AT_SYMLINK_NOFOLLOW) ? 0 : LOOKUP_FOLLOW;
| ^
fs/xattr.c:1098:45: error: use of undeclared identifier 'lookup_flags'
1098 | return filename_removexattr(dfd, filename, lookup_flags, &kname);
| ^
2 warnings and 4 errors generated.
vim +971 fs/xattr.c
962
963 static
964 ssize_t filename_listxattrat(int dfd, struct filename *filename,
965 unsigned int lookup_flags,
966 char __user *list, size_t size)
967 {
968 struct path path;
969 ssize_t error;
970 retry:
> 971 error = user_path_at(dfd, pathname, lookup_flags, &path);
972 if (error)
973 goto out;
974 error = listxattr(path.dentry, list, size);
975 path_put(&path);
976 if (retry_estale(error, lookup_flags)) {
977 lookup_flags |= LOOKUP_REVAL;
978 goto retry;
979 }
980 out:
981 putname(filename);
982 return error;
983 }
984
985 static ssize_t path_listxattrat(int dfd, const char __user *pathname,
986 unsigned int at_flags, char __user *list,
987 size_t size)
988 {
989 struct filename *filename;
990 ssize_t error;
991 int lookup_flags;
992
993 if ((at_flags & ~(AT_SYMLINK_NOFOLLOW | AT_EMPTY_PATH)) != 0)
994 return -EINVAL;
995
996 filename = getname_xattr(pathname, at_flags);
997 if (!filename) {
998 CLASS(fd, f)(dfd);
999 if (fd_empty(f))
1000 return -EBADF;
1001 audit_file(fd_file(f));
1002 return listxattr(file_dentry(fd_file(f)), list, size);
1003 }
1004
1005 lookup_flags = (at_flags & AT_SYMLINK_NOFOLLOW) ? 0 : LOOKUP_FOLLOW;
1006 return filename_listxattrat(dfd, filename, lookup_flags, list, size);
1007 }
1008
1009 SYSCALL_DEFINE5(listxattrat, int, dfd, const char __user *, pathname,
1010 unsigned int, at_flags,
1011 char __user *, list, size_t, size)
1012 {
1013 return path_listxattrat(dfd, pathname, at_flags, list, size);
1014 }
1015
1016 SYSCALL_DEFINE3(listxattr, const char __user *, pathname, char __user *, list,
1017 size_t, size)
1018 {
1019 return path_listxattrat(AT_FDCWD, pathname, 0, list, size);
1020 }
1021
1022 SYSCALL_DEFINE3(llistxattr, const char __user *, pathname, char __user *, list,
1023 size_t, size)
1024 {
1025 return path_listxattrat(AT_FDCWD, pathname, AT_SYMLINK_NOFOLLOW, list, size);
1026 }
1027
1028 SYSCALL_DEFINE3(flistxattr, int, fd, char __user *, list, size_t, size)
1029 {
1030 return path_listxattrat(fd, NULL, AT_EMPTY_PATH, list, size);
1031 }
1032
1033 /*
1034 * Extended attribute REMOVE operations
1035 */
1036 static long
1037 removexattr(struct mnt_idmap *idmap, struct dentry *d, const char *name)
1038 {
1039 if (is_posix_acl_xattr(name))
1040 return vfs_remove_acl(idmap, d, name);
1041 return vfs_removexattr(idmap, d, name);
1042 }
1043
1044 static int filename_removexattr(int dfd, struct filename *filename,
1045 unsigned int lookup_flags, struct xattr_name *kname)
1046 {
1047 struct path path;
1048 int error;
1049
1050 retry:
1051 error = filename_lookup(dfd, filename, lookup_flags, &path, NULL);
1052 if (error)
1053 goto out;
1054 error = mnt_want_write(path.mnt);
1055 if (!error) {
1056 error = removexattr(mnt_idmap(path.mnt), path.dentry, kname->name);
1057 mnt_drop_write(path.mnt);
1058 }
1059 path_put(&path);
1060 if (retry_estale(error, lookup_flags)) {
1061 lookup_flags |= LOOKUP_REVAL;
1062 goto retry;
1063 }
1064 out:
1065 putname(filename);
1066 return error;
1067 }
1068
1069 static int path_removexattrat(int dfd, const char __user *pathname,
1070 unsigned int at_flags, const char __user *name)
1071 {
1072 struct xattr_name kname;
1073 struct filename *filename;
1074 int error;
1075
1076 if ((at_flags & ~(AT_SYMLINK_NOFOLLOW | AT_EMPTY_PATH)) != 0)
1077 return -EINVAL;
1078
1079 error = import_xattr_name(&kname, name);
1080 if (error)
1081 return error;
1082
1083 filename = getname_xattr(pathname, at_flags);
1084 if (!filename) {
1085 CLASS(fd, f)(dfd);
1086 if (fd_empty(f))
1087 return -EBADF;
1088 audit_file(fd_file(f));
1089 error = mnt_want_write_file(fd_file(f));
1090 if (!error) {
1091 error = removexattr(file_mnt_idmap(fd_file(f)),
> 1092 fd_file(f)->f_path.dentry, &kname);
1093 mnt_drop_write_file(fd_file(f));
1094 }
1095 return error;
1096 }
> 1097 lookup_flags = (at_flags & AT_SYMLINK_NOFOLLOW) ? 0 : LOOKUP_FOLLOW;
1098 return filename_removexattr(dfd, filename, lookup_flags, &kname);
1099 }
1100
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2024-10-01 6:00 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-10-01 6:00 [viro-vfs:work.xattr 9/9] fs/xattr.c:971:28: error: use of undeclared identifier 'pathname'; did you mean 'putname'? kernel test robot
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.