* [brauner-github:vfs.all 10/12] include/linux/fs.h:1818:26: warning: passing argument 1 of 'from_kuid' makes pointer from integer without a cast
@ 2025-11-05 16:13 kernel test robot
0 siblings, 0 replies; only message in thread
From: kernel test robot @ 2025-11-05 16:13 UTC (permalink / raw)
To: Christian Brauner; +Cc: oe-kbuild-all, Christian Brauner
tree: https://github.com/brauner/linux.git vfs.all
head: 3742991d3be2fa7808d3e569366a10d7eb287b55
commit: 3fef0b63fe1c3cd51b1daae6f8b946a947d73331 [10/12] Merge branch 'vfs-6.19.fs_header' into vfs.all
config: nios2-allnoconfig (https://download.01.org/0day-ci/archive/20251106/202511060038.dFRe1fsF-lkp@intel.com/config)
compiler: nios2-linux-gcc (GCC) 11.5.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20251106/202511060038.dFRe1fsF-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/202511060038.dFRe1fsF-lkp@intel.com/
All warnings (new ones prefixed by >>):
In file included from include/linux/huge_mm.h:7,
from include/linux/mm.h:1081,
from include/linux/pid_namespace.h:7,
from include/linux/ptrace.h:10,
from arch/nios2/kernel/asm-offsets.c:10:
include/linux/fs.h:1431:1: error: version control conflict marker in file
1431 | <<<<<<< HEAD
| ^~~~~~~
include/linux/fs.h:1464:8: error: redefinition of 'struct sb_writers'
1464 | struct sb_writers {
| ^~~~~~~~~~
In file included from include/linux/fs_super.h:5,
from include/linux/fs.h:5,
from include/linux/huge_mm.h:7,
from include/linux/mm.h:1081,
from include/linux/pid_namespace.h:7,
from include/linux/ptrace.h:10,
from arch/nios2/kernel/asm-offsets.c:10:
include/linux/fs_super_types.h:52:8: note: originally defined here
52 | struct sb_writers {
| ^~~~~~~~~~
In file included from include/linux/huge_mm.h:7,
from include/linux/mm.h:1081,
from include/linux/pid_namespace.h:7,
from include/linux/ptrace.h:10,
from arch/nios2/kernel/asm-offsets.c:10:
include/linux/fs.h:1474:8: error: redefinition of 'struct super_block'
1474 | struct super_block {
| ^~~~~~~~~~~
In file included from include/linux/fs_super.h:5,
from include/linux/fs.h:5,
from include/linux/huge_mm.h:7,
from include/linux/mm.h:1081,
from include/linux/pid_namespace.h:7,
from include/linux/ptrace.h:10,
from arch/nios2/kernel/asm-offsets.c:10:
include/linux/fs_super_types.h:129:8: note: originally defined here
129 | struct super_block {
| ^~~~~~~~~~~
In file included from include/linux/huge_mm.h:7,
from include/linux/mm.h:1081,
from include/linux/pid_namespace.h:7,
from include/linux/ptrace.h:10,
from arch/nios2/kernel/asm-offsets.c:10:
include/linux/fs.h:1618:1: error: expected identifier or '(' before '||' token
1618 | ||||||| dcb6fa37fd7b
| ^~
include/linux/fs.h:1651:8: error: redefinition of 'struct sb_writers'
1651 | struct sb_writers {
| ^~~~~~~~~~
include/linux/fs.h:1464:8: note: originally defined here
1464 | struct sb_writers {
| ^~~~~~~~~~
include/linux/fs.h:1661:8: error: redefinition of 'struct super_block'
1661 | struct super_block {
| ^~~~~~~~~~~
include/linux/fs.h:1474:8: note: originally defined here
1474 | struct super_block {
| ^~~~~~~~~~~
include/linux/fs.h:1804:1: error: version control conflict marker in file
1804 | =======
| ^~~~~~~
include/linux/fs.h:1805:13: error: too many decimal points in number
1805 | >>>>>>> vfs-6.19.fs_header
| ^~~~~~~~~~~~~~
include/linux/fs.h: In function 'i_uid_read':
include/linux/fs.h:1818:26: error: implicit declaration of function 'i_user_ns' [-Werror=implicit-function-declaration]
1818 | return from_kuid(i_user_ns(inode), inode->i_uid);
| ^~~~~~~~~
>> include/linux/fs.h:1818:26: warning: passing argument 1 of 'from_kuid' makes pointer from integer without a cast [-Wint-conversion]
1818 | return from_kuid(i_user_ns(inode), inode->i_uid);
| ^~~~~~~~~~~~~~~~
| |
| int
In file included from include/linux/kernfs.h:18,
from include/linux/sysfs.h:16,
from include/linux/kobject.h:20,
from include/linux/irqdesc.h:6,
from include/linux/irq.h:581,
from include/asm-generic/hardirq.h:17,
from ./arch/nios2/include/generated/asm/hardirq.h:1,
from include/linux/hardirq.h:11,
from include/linux/interrupt.h:11,
from include/linux/kernel_stat.h:8,
from arch/nios2/kernel/asm-offsets.c:9:
include/linux/uidgid.h:149:54: note: expected 'struct user_namespace *' but argument is of type 'int'
149 | static inline uid_t from_kuid(struct user_namespace *to, kuid_t kuid)
| ~~~~~~~~~~~~~~~~~~~~~~~^~
In file included from include/linux/huge_mm.h:7,
from include/linux/mm.h:1081,
from include/linux/pid_namespace.h:7,
from include/linux/ptrace.h:10,
from arch/nios2/kernel/asm-offsets.c:10:
include/linux/fs.h: In function 'i_gid_read':
>> include/linux/fs.h:1823:26: warning: passing argument 1 of 'from_kgid' makes pointer from integer without a cast [-Wint-conversion]
1823 | return from_kgid(i_user_ns(inode), inode->i_gid);
| ^~~~~~~~~~~~~~~~
| |
| int
In file included from include/linux/kernfs.h:18,
from include/linux/sysfs.h:16,
from include/linux/kobject.h:20,
from include/linux/irqdesc.h:6,
from include/linux/irq.h:581,
from include/asm-generic/hardirq.h:17,
from ./arch/nios2/include/generated/asm/hardirq.h:1,
from include/linux/hardirq.h:11,
from include/linux/interrupt.h:11,
from include/linux/kernel_stat.h:8,
from arch/nios2/kernel/asm-offsets.c:9:
include/linux/uidgid.h:154:54: note: expected 'struct user_namespace *' but argument is of type 'int'
154 | static inline gid_t from_kgid(struct user_namespace *to, kgid_t kgid)
| ~~~~~~~~~~~~~~~~~~~~~~~^~
In file included from include/linux/huge_mm.h:7,
from include/linux/mm.h:1081,
from include/linux/pid_namespace.h:7,
from include/linux/ptrace.h:10,
from arch/nios2/kernel/asm-offsets.c:10:
include/linux/fs.h: In function 'i_uid_write':
>> include/linux/fs.h:1828:34: warning: passing argument 1 of 'make_kuid' makes pointer from integer without a cast [-Wint-conversion]
1828 | inode->i_uid = make_kuid(i_user_ns(inode), uid);
| ^~~~~~~~~~~~~~~~
| |
| int
In file included from include/linux/kernfs.h:18,
from include/linux/sysfs.h:16,
from include/linux/kobject.h:20,
from include/linux/irqdesc.h:6,
from include/linux/irq.h:581,
from include/asm-generic/hardirq.h:17,
from ./arch/nios2/include/generated/asm/hardirq.h:1,
from include/linux/hardirq.h:11,
from include/linux/interrupt.h:11,
from include/linux/kernel_stat.h:8,
from arch/nios2/kernel/asm-offsets.c:9:
include/linux/uidgid.h:139:55: note: expected 'struct user_namespace *' but argument is of type 'int'
139 | static inline kuid_t make_kuid(struct user_namespace *from, uid_t uid)
| ~~~~~~~~~~~~~~~~~~~~~~~^~~~
In file included from include/linux/huge_mm.h:7,
from include/linux/mm.h:1081,
from include/linux/pid_namespace.h:7,
from include/linux/ptrace.h:10,
from arch/nios2/kernel/asm-offsets.c:10:
include/linux/fs.h: In function 'i_gid_write':
>> include/linux/fs.h:1833:34: warning: passing argument 1 of 'make_kgid' makes pointer from integer without a cast [-Wint-conversion]
1833 | inode->i_gid = make_kgid(i_user_ns(inode), gid);
| ^~~~~~~~~~~~~~~~
| |
| int
In file included from include/linux/kernfs.h:18,
from include/linux/sysfs.h:16,
from include/linux/kobject.h:20,
from include/linux/irqdesc.h:6,
from include/linux/irq.h:581,
from include/asm-generic/hardirq.h:17,
from ./arch/nios2/include/generated/asm/hardirq.h:1,
from include/linux/hardirq.h:11,
from include/linux/interrupt.h:11,
from include/linux/kernel_stat.h:8,
from arch/nios2/kernel/asm-offsets.c:9:
include/linux/uidgid.h:144:55: note: expected 'struct user_namespace *' but argument is of type 'int'
144 | static inline kgid_t make_kgid(struct user_namespace *from, gid_t gid)
| ~~~~~~~~~~~~~~~~~~~~~~~^~~~
In file included from include/linux/huge_mm.h:7,
from include/linux/mm.h:1081,
from include/linux/pid_namespace.h:7,
from include/linux/ptrace.h:10,
from arch/nios2/kernel/asm-offsets.c:10:
include/linux/fs.h: In function 'i_uid_into_vfsuid':
>> include/linux/fs.h:1847:35: warning: passing argument 2 of 'make_vfsuid' makes pointer from integer without a cast [-Wint-conversion]
1847 | return make_vfsuid(idmap, i_user_ns(inode), inode->i_uid);
| ^~~~~~~~~~~~~~~~
| |
| int
In file included from include/linux/fs.h:44,
from include/linux/huge_mm.h:7,
from include/linux/mm.h:1081,
from include/linux/pid_namespace.h:7,
from include/linux/ptrace.h:10,
from arch/nios2/kernel/asm-offsets.c:10:
include/linux/mnt_idmapping.h:128:45: note: expected 'struct user_namespace *' but argument is of type 'int'
128 | struct user_namespace *fs_userns, kuid_t kuid);
| ~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~
In file included from include/linux/huge_mm.h:7,
from include/linux/mm.h:1081,
from include/linux/pid_namespace.h:7,
from include/linux/ptrace.h:10,
from arch/nios2/kernel/asm-offsets.c:10:
include/linux/fs.h: In function 'i_uid_update':
>> include/linux/fs.h:1884:51: warning: passing argument 2 of 'from_vfsuid' makes pointer from integer without a cast [-Wint-conversion]
1884 | inode->i_uid = from_vfsuid(idmap, i_user_ns(inode),
| ^~~~~~~~~~~~~~~~
| |
| int
In file included from include/linux/fs.h:44,
from include/linux/huge_mm.h:7,
from include/linux/mm.h:1081,
from include/linux/pid_namespace.h:7,
from include/linux/ptrace.h:10,
from arch/nios2/kernel/asm-offsets.c:10:
include/linux/mnt_idmapping.h:134:43: note: expected 'struct user_namespace *' but argument is of type 'int'
134 | struct user_namespace *fs_userns, vfsuid_t vfsuid);
| ~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~
In file included from include/linux/huge_mm.h:7,
from include/linux/mm.h:1081,
from include/linux/pid_namespace.h:7,
from include/linux/ptrace.h:10,
from arch/nios2/kernel/asm-offsets.c:10:
include/linux/fs.h: In function 'i_gid_into_vfsgid':
>> include/linux/fs.h:1899:35: warning: passing argument 2 of 'make_vfsgid' makes pointer from integer without a cast [-Wint-conversion]
1899 | return make_vfsgid(idmap, i_user_ns(inode), inode->i_gid);
| ^~~~~~~~~~~~~~~~
| |
| int
In file included from include/linux/fs.h:44,
from include/linux/huge_mm.h:7,
from include/linux/mm.h:1081,
from include/linux/pid_namespace.h:7,
from include/linux/ptrace.h:10,
from arch/nios2/kernel/asm-offsets.c:10:
include/linux/mnt_idmapping.h:131:45: note: expected 'struct user_namespace *' but argument is of type 'int'
131 | struct user_namespace *fs_userns, kgid_t kgid);
| ~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~
In file included from include/linux/huge_mm.h:7,
from include/linux/mm.h:1081,
from include/linux/pid_namespace.h:7,
from include/linux/ptrace.h:10,
from arch/nios2/kernel/asm-offsets.c:10:
include/linux/fs.h: In function 'i_gid_update':
>> include/linux/fs.h:1936:51: warning: passing argument 2 of 'from_vfsgid' makes pointer from integer without a cast [-Wint-conversion]
1936 | inode->i_gid = from_vfsgid(idmap, i_user_ns(inode),
| ^~~~~~~~~~~~~~~~
| |
| int
In file included from include/linux/fs.h:44,
from include/linux/huge_mm.h:7,
from include/linux/mm.h:1081,
from include/linux/pid_namespace.h:7,
from include/linux/ptrace.h:10,
from arch/nios2/kernel/asm-offsets.c:10:
include/linux/mnt_idmapping.h:137:43: note: expected 'struct user_namespace *' but argument is of type 'int'
137 | struct user_namespace *fs_userns, vfsgid_t vfsgid);
| ~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~
In file included from include/linux/huge_mm.h:7,
from include/linux/mm.h:1081,
from include/linux/pid_namespace.h:7,
from include/linux/ptrace.h:10,
from arch/nios2/kernel/asm-offsets.c:10:
include/linux/fs.h: In function 'inode_fsuid_set':
>> include/linux/fs.h:1951:44: warning: passing argument 2 of 'mapped_fsuid' makes pointer from integer without a cast [-Wint-conversion]
1951 | inode->i_uid = mapped_fsuid(idmap, i_user_ns(inode));
| ^~~~~~~~~~~~~~~~
| |
| int
In file included from include/linux/fs.h:44,
from include/linux/huge_mm.h:7,
from include/linux/mm.h:1081,
from include/linux/pid_namespace.h:7,
from include/linux/ptrace.h:10,
from arch/nios2/kernel/asm-offsets.c:10:
include/linux/mnt_idmapping.h:229:58: note: expected 'struct user_namespace *' but argument is of type 'int'
229 | struct user_namespace *fs_userns)
| ~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~
In file included from include/linux/huge_mm.h:7,
from include/linux/mm.h:1081,
from include/linux/pid_namespace.h:7,
from include/linux/ptrace.h:10,
from arch/nios2/kernel/asm-offsets.c:10:
include/linux/fs.h: In function 'inode_fsgid_set':
>> include/linux/fs.h:1965:44: warning: passing argument 2 of 'mapped_fsgid' makes pointer from integer without a cast [-Wint-conversion]
1965 | inode->i_gid = mapped_fsgid(idmap, i_user_ns(inode));
| ^~~~~~~~~~~~~~~~
| |
| int
In file included from include/linux/fs.h:44,
from include/linux/huge_mm.h:7,
from include/linux/mm.h:1081,
from include/linux/pid_namespace.h:7,
from include/linux/ptrace.h:10,
from arch/nios2/kernel/asm-offsets.c:10:
include/linux/mnt_idmapping.h:248:58: note: expected 'struct user_namespace *' but argument is of type 'int'
248 | struct user_namespace *fs_userns)
| ~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~
In file included from include/linux/huge_mm.h:7,
from include/linux/mm.h:1081,
from include/linux/pid_namespace.h:7,
from include/linux/ptrace.h:10,
from arch/nios2/kernel/asm-offsets.c:10:
include/linux/fs.h: At top level:
include/linux/fs.h:3391:1: error: version control conflict marker in file
3391 | <<<<<<< HEAD
| ^~~~~~~
include/linux/fs.h:3393:18: error: conflicting types for 'sb_min_blocksize'; have 'int(struct super_block *, int)'
3393 | int __must_check sb_min_blocksize(struct super_block *sb, int size);
| ^~~~~~~~~~~~~~~~
In file included from include/linux/fs.h:5,
from include/linux/huge_mm.h:7,
from include/linux/mm.h:1081,
from include/linux/pid_namespace.h:7,
from include/linux/ptrace.h:10,
from arch/nios2/kernel/asm-offsets.c:10:
include/linux/fs_super.h:226:5: note: previous declaration of 'sb_min_blocksize' with type 'int(struct super_block *, int)'
226 | int sb_min_blocksize(struct super_block *sb, int size);
| ^~~~~~~~~~~~~~~~
In file included from include/linux/huge_mm.h:7,
from include/linux/mm.h:1081,
from include/linux/pid_namespace.h:7,
from include/linux/ptrace.h:10,
from arch/nios2/kernel/asm-offsets.c:10:
include/linux/fs.h:3395:1: error: expected identifier or '(' before '||' token
3395 | ||||||| dcb6fa37fd7b
| ^~
include/linux/fs.h:3397:12: error: conflicting types for 'sb_min_blocksize'; have 'int(struct super_block *, int)'
3397 | extern int sb_min_blocksize(struct super_block *, int);
| ^~~~~~~~~~~~~~~~
In file included from include/linux/fs.h:5,
from include/linux/huge_mm.h:7,
from include/linux/mm.h:1081,
from include/linux/pid_namespace.h:7,
from include/linux/ptrace.h:10,
from arch/nios2/kernel/asm-offsets.c:10:
include/linux/fs_super.h:226:5: note: previous declaration of 'sb_min_blocksize' with type 'int(struct super_block *, int)'
226 | int sb_min_blocksize(struct super_block *sb, int size);
| ^~~~~~~~~~~~~~~~
In file included from include/linux/huge_mm.h:7,
from include/linux/mm.h:1081,
from include/linux/pid_namespace.h:7,
from include/linux/ptrace.h:10,
from arch/nios2/kernel/asm-offsets.c:10:
include/linux/fs.h:3399:1: error: version control conflict marker in file
3399 | =======
| ^~~~~~~
include/linux/fs.h:3400:13: error: too many decimal points in number
3400 | >>>>>>> vfs-6.19.fs_header
| ^~~~~~~~~~~~~~
cc1: some warnings being treated as errors
make[3]: *** [scripts/Makefile.build:182: arch/nios2/kernel/asm-offsets.s] Error 1
make[3]: Target 'prepare' not remade because of errors.
make[2]: *** [Makefile:1280: prepare0] Error 2
make[2]: Target 'prepare' not remade because of errors.
make[1]: *** [Makefile:248: __sub-make] Error 2
make[1]: Target 'prepare' not remade because of errors.
make: *** [Makefile:248: __sub-make] Error 2
make: Target 'prepare' not remade because of errors.
vim +/from_kuid +1818 include/linux/fs.h
a1ec9040a2a912 Christian Brauner 2021-12-03 1810
81754357770ebd Seth Forshee 2014-12-11 1811 /* Helper functions so that in most cases filesystems will
81754357770ebd Seth Forshee 2014-12-11 1812 * not need to deal directly with kuid_t and kgid_t and can
81754357770ebd Seth Forshee 2014-12-11 1813 * instead deal with the raw numeric values that are stored
81754357770ebd Seth Forshee 2014-12-11 1814 * in the filesystem.
81754357770ebd Seth Forshee 2014-12-11 1815 */
81754357770ebd Seth Forshee 2014-12-11 1816 static inline uid_t i_uid_read(const struct inode *inode)
81754357770ebd Seth Forshee 2014-12-11 1817 {
a1ec9040a2a912 Christian Brauner 2021-12-03 @1818 return from_kuid(i_user_ns(inode), inode->i_uid);
81754357770ebd Seth Forshee 2014-12-11 1819 }
81754357770ebd Seth Forshee 2014-12-11 1820
81754357770ebd Seth Forshee 2014-12-11 1821 static inline gid_t i_gid_read(const struct inode *inode)
81754357770ebd Seth Forshee 2014-12-11 1822 {
a1ec9040a2a912 Christian Brauner 2021-12-03 @1823 return from_kgid(i_user_ns(inode), inode->i_gid);
81754357770ebd Seth Forshee 2014-12-11 1824 }
81754357770ebd Seth Forshee 2014-12-11 1825
81754357770ebd Seth Forshee 2014-12-11 1826 static inline void i_uid_write(struct inode *inode, uid_t uid)
81754357770ebd Seth Forshee 2014-12-11 1827 {
a1ec9040a2a912 Christian Brauner 2021-12-03 @1828 inode->i_uid = make_kuid(i_user_ns(inode), uid);
81754357770ebd Seth Forshee 2014-12-11 1829 }
81754357770ebd Seth Forshee 2014-12-11 1830
81754357770ebd Seth Forshee 2014-12-11 1831 static inline void i_gid_write(struct inode *inode, gid_t gid)
81754357770ebd Seth Forshee 2014-12-11 1832 {
a1ec9040a2a912 Christian Brauner 2021-12-03 @1833 inode->i_gid = make_kgid(i_user_ns(inode), gid);
81754357770ebd Seth Forshee 2014-12-11 1834 }
81754357770ebd Seth Forshee 2014-12-11 1835
234a3113f28d02 Christian Brauner 2022-06-21 1836 /**
e67fe63341b811 Christian Brauner 2023-01-13 1837 * i_uid_into_vfsuid - map an inode's i_uid down according to an idmapping
e67fe63341b811 Christian Brauner 2023-01-13 1838 * @idmap: idmap of the mount the inode was found from
234a3113f28d02 Christian Brauner 2022-06-21 1839 * @inode: inode to map
234a3113f28d02 Christian Brauner 2022-06-21 1840 *
e67fe63341b811 Christian Brauner 2023-01-13 1841 * Return: whe inode's i_uid mapped down according to @idmap.
234a3113f28d02 Christian Brauner 2022-06-21 1842 * If the inode's i_uid has no mapping INVALID_VFSUID is returned.
234a3113f28d02 Christian Brauner 2022-06-21 1843 */
e67fe63341b811 Christian Brauner 2023-01-13 1844 static inline vfsuid_t i_uid_into_vfsuid(struct mnt_idmap *idmap,
234a3113f28d02 Christian Brauner 2022-06-21 1845 const struct inode *inode)
234a3113f28d02 Christian Brauner 2022-06-21 1846 {
4d7ca4090184c1 Christian Brauner 2023-01-13 @1847 return make_vfsuid(idmap, i_user_ns(inode), inode->i_uid);
e6c9a71451560e Christian Brauner 2021-01-21 1848 }
e6c9a71451560e Christian Brauner 2021-01-21 1849
1f36146a5a3dc6 Christian Brauner 2022-06-21 1850 /**
1f36146a5a3dc6 Christian Brauner 2022-06-21 1851 * i_uid_needs_update - check whether inode's i_uid needs to be updated
0dbe12f2e49c04 Christian Brauner 2023-01-13 1852 * @idmap: idmap of the mount the inode was found from
1f36146a5a3dc6 Christian Brauner 2022-06-21 1853 * @attr: the new attributes of @inode
1f36146a5a3dc6 Christian Brauner 2022-06-21 1854 * @inode: the inode to update
1f36146a5a3dc6 Christian Brauner 2022-06-21 1855 *
1f36146a5a3dc6 Christian Brauner 2022-06-21 1856 * Check whether the $inode's i_uid field needs to be updated taking idmapped
1f36146a5a3dc6 Christian Brauner 2022-06-21 1857 * mounts into account if the filesystem supports it.
1f36146a5a3dc6 Christian Brauner 2022-06-21 1858 *
1f36146a5a3dc6 Christian Brauner 2022-06-21 1859 * Return: true if @inode's i_uid field needs to be updated, false if not.
1f36146a5a3dc6 Christian Brauner 2022-06-21 1860 */
0dbe12f2e49c04 Christian Brauner 2023-01-13 1861 static inline bool i_uid_needs_update(struct mnt_idmap *idmap,
1f36146a5a3dc6 Christian Brauner 2022-06-21 1862 const struct iattr *attr,
1f36146a5a3dc6 Christian Brauner 2022-06-21 1863 const struct inode *inode)
1f36146a5a3dc6 Christian Brauner 2022-06-21 1864 {
1f36146a5a3dc6 Christian Brauner 2022-06-21 1865 return ((attr->ia_valid & ATTR_UID) &&
1f36146a5a3dc6 Christian Brauner 2022-06-21 1866 !vfsuid_eq(attr->ia_vfsuid,
e67fe63341b811 Christian Brauner 2023-01-13 1867 i_uid_into_vfsuid(idmap, inode)));
1f36146a5a3dc6 Christian Brauner 2022-06-21 1868 }
1f36146a5a3dc6 Christian Brauner 2022-06-21 1869
1f36146a5a3dc6 Christian Brauner 2022-06-21 1870 /**
1f36146a5a3dc6 Christian Brauner 2022-06-21 1871 * i_uid_update - update @inode's i_uid field
0dbe12f2e49c04 Christian Brauner 2023-01-13 1872 * @idmap: idmap of the mount the inode was found from
1f36146a5a3dc6 Christian Brauner 2022-06-21 1873 * @attr: the new attributes of @inode
1f36146a5a3dc6 Christian Brauner 2022-06-21 1874 * @inode: the inode to update
1f36146a5a3dc6 Christian Brauner 2022-06-21 1875 *
1f36146a5a3dc6 Christian Brauner 2022-06-21 1876 * Safely update @inode's i_uid field translating the vfsuid of any idmapped
1f36146a5a3dc6 Christian Brauner 2022-06-21 1877 * mount into the filesystem kuid.
1f36146a5a3dc6 Christian Brauner 2022-06-21 1878 */
0dbe12f2e49c04 Christian Brauner 2023-01-13 1879 static inline void i_uid_update(struct mnt_idmap *idmap,
1f36146a5a3dc6 Christian Brauner 2022-06-21 1880 const struct iattr *attr,
1f36146a5a3dc6 Christian Brauner 2022-06-21 1881 struct inode *inode)
1f36146a5a3dc6 Christian Brauner 2022-06-21 1882 {
1f36146a5a3dc6 Christian Brauner 2022-06-21 1883 if (attr->ia_valid & ATTR_UID)
4d7ca4090184c1 Christian Brauner 2023-01-13 @1884 inode->i_uid = from_vfsuid(idmap, i_user_ns(inode),
1f36146a5a3dc6 Christian Brauner 2022-06-21 1885 attr->ia_vfsuid);
1f36146a5a3dc6 Christian Brauner 2022-06-21 1886 }
1f36146a5a3dc6 Christian Brauner 2022-06-21 1887
234a3113f28d02 Christian Brauner 2022-06-21 1888 /**
e67fe63341b811 Christian Brauner 2023-01-13 1889 * i_gid_into_vfsgid - map an inode's i_gid down according to an idmapping
e67fe63341b811 Christian Brauner 2023-01-13 1890 * @idmap: idmap of the mount the inode was found from
234a3113f28d02 Christian Brauner 2022-06-21 1891 * @inode: inode to map
234a3113f28d02 Christian Brauner 2022-06-21 1892 *
e67fe63341b811 Christian Brauner 2023-01-13 1893 * Return: the inode's i_gid mapped down according to @idmap.
234a3113f28d02 Christian Brauner 2022-06-21 1894 * If the inode's i_gid has no mapping INVALID_VFSGID is returned.
234a3113f28d02 Christian Brauner 2022-06-21 1895 */
e67fe63341b811 Christian Brauner 2023-01-13 1896 static inline vfsgid_t i_gid_into_vfsgid(struct mnt_idmap *idmap,
234a3113f28d02 Christian Brauner 2022-06-21 1897 const struct inode *inode)
234a3113f28d02 Christian Brauner 2022-06-21 1898 {
4d7ca4090184c1 Christian Brauner 2023-01-13 @1899 return make_vfsgid(idmap, i_user_ns(inode), inode->i_gid);
e6c9a71451560e Christian Brauner 2021-01-21 1900 }
e6c9a71451560e Christian Brauner 2021-01-21 1901
1f36146a5a3dc6 Christian Brauner 2022-06-21 1902 /**
1f36146a5a3dc6 Christian Brauner 2022-06-21 1903 * i_gid_needs_update - check whether inode's i_gid needs to be updated
0dbe12f2e49c04 Christian Brauner 2023-01-13 1904 * @idmap: idmap of the mount the inode was found from
1f36146a5a3dc6 Christian Brauner 2022-06-21 1905 * @attr: the new attributes of @inode
1f36146a5a3dc6 Christian Brauner 2022-06-21 1906 * @inode: the inode to update
1f36146a5a3dc6 Christian Brauner 2022-06-21 1907 *
1f36146a5a3dc6 Christian Brauner 2022-06-21 1908 * Check whether the $inode's i_gid field needs to be updated taking idmapped
1f36146a5a3dc6 Christian Brauner 2022-06-21 1909 * mounts into account if the filesystem supports it.
1f36146a5a3dc6 Christian Brauner 2022-06-21 1910 *
1f36146a5a3dc6 Christian Brauner 2022-06-21 1911 * Return: true if @inode's i_gid field needs to be updated, false if not.
1f36146a5a3dc6 Christian Brauner 2022-06-21 1912 */
0dbe12f2e49c04 Christian Brauner 2023-01-13 1913 static inline bool i_gid_needs_update(struct mnt_idmap *idmap,
1f36146a5a3dc6 Christian Brauner 2022-06-21 1914 const struct iattr *attr,
1f36146a5a3dc6 Christian Brauner 2022-06-21 1915 const struct inode *inode)
1f36146a5a3dc6 Christian Brauner 2022-06-21 1916 {
1f36146a5a3dc6 Christian Brauner 2022-06-21 1917 return ((attr->ia_valid & ATTR_GID) &&
1f36146a5a3dc6 Christian Brauner 2022-06-21 1918 !vfsgid_eq(attr->ia_vfsgid,
e67fe63341b811 Christian Brauner 2023-01-13 1919 i_gid_into_vfsgid(idmap, inode)));
1f36146a5a3dc6 Christian Brauner 2022-06-21 1920 }
1f36146a5a3dc6 Christian Brauner 2022-06-21 1921
1f36146a5a3dc6 Christian Brauner 2022-06-21 1922 /**
1f36146a5a3dc6 Christian Brauner 2022-06-21 1923 * i_gid_update - update @inode's i_gid field
0dbe12f2e49c04 Christian Brauner 2023-01-13 1924 * @idmap: idmap of the mount the inode was found from
1f36146a5a3dc6 Christian Brauner 2022-06-21 1925 * @attr: the new attributes of @inode
1f36146a5a3dc6 Christian Brauner 2022-06-21 1926 * @inode: the inode to update
1f36146a5a3dc6 Christian Brauner 2022-06-21 1927 *
1f36146a5a3dc6 Christian Brauner 2022-06-21 1928 * Safely update @inode's i_gid field translating the vfsgid of any idmapped
1f36146a5a3dc6 Christian Brauner 2022-06-21 1929 * mount into the filesystem kgid.
1f36146a5a3dc6 Christian Brauner 2022-06-21 1930 */
0dbe12f2e49c04 Christian Brauner 2023-01-13 1931 static inline void i_gid_update(struct mnt_idmap *idmap,
1f36146a5a3dc6 Christian Brauner 2022-06-21 1932 const struct iattr *attr,
1f36146a5a3dc6 Christian Brauner 2022-06-21 1933 struct inode *inode)
1f36146a5a3dc6 Christian Brauner 2022-06-21 1934 {
1f36146a5a3dc6 Christian Brauner 2022-06-21 1935 if (attr->ia_valid & ATTR_GID)
4d7ca4090184c1 Christian Brauner 2023-01-13 @1936 inode->i_gid = from_vfsgid(idmap, i_user_ns(inode),
1f36146a5a3dc6 Christian Brauner 2022-06-21 1937 attr->ia_vfsgid);
1f36146a5a3dc6 Christian Brauner 2022-06-21 1938 }
1f36146a5a3dc6 Christian Brauner 2022-06-21 1939
db998553cf11dd Christian Brauner 2021-03-20 1940 /**
db998553cf11dd Christian Brauner 2021-03-20 1941 * inode_fsuid_set - initialize inode's i_uid field with callers fsuid
db998553cf11dd Christian Brauner 2021-03-20 1942 * @inode: inode to initialize
c14329d39f2daa Christian Brauner 2023-01-13 1943 * @idmap: idmap of the mount the inode was found from
db998553cf11dd Christian Brauner 2021-03-20 1944 *
db998553cf11dd Christian Brauner 2021-03-20 1945 * Initialize the i_uid field of @inode. If the inode was found/created via
c14329d39f2daa Christian Brauner 2023-01-13 1946 * an idmapped mount map the caller's fsuid according to @idmap.
db998553cf11dd Christian Brauner 2021-03-20 1947 */
db998553cf11dd Christian Brauner 2021-03-20 1948 static inline void inode_fsuid_set(struct inode *inode,
c14329d39f2daa Christian Brauner 2023-01-13 1949 struct mnt_idmap *idmap)
db998553cf11dd Christian Brauner 2021-03-20 1950 {
c14329d39f2daa Christian Brauner 2023-01-13 @1951 inode->i_uid = mapped_fsuid(idmap, i_user_ns(inode));
db998553cf11dd Christian Brauner 2021-03-20 1952 }
db998553cf11dd Christian Brauner 2021-03-20 1953
db998553cf11dd Christian Brauner 2021-03-20 1954 /**
db998553cf11dd Christian Brauner 2021-03-20 1955 * inode_fsgid_set - initialize inode's i_gid field with callers fsgid
db998553cf11dd Christian Brauner 2021-03-20 1956 * @inode: inode to initialize
c14329d39f2daa Christian Brauner 2023-01-13 1957 * @idmap: idmap of the mount the inode was found from
db998553cf11dd Christian Brauner 2021-03-20 1958 *
db998553cf11dd Christian Brauner 2021-03-20 1959 * Initialize the i_gid field of @inode. If the inode was found/created via
c14329d39f2daa Christian Brauner 2023-01-13 1960 * an idmapped mount map the caller's fsgid according to @idmap.
db998553cf11dd Christian Brauner 2021-03-20 1961 */
db998553cf11dd Christian Brauner 2021-03-20 1962 static inline void inode_fsgid_set(struct inode *inode,
c14329d39f2daa Christian Brauner 2023-01-13 1963 struct mnt_idmap *idmap)
db998553cf11dd Christian Brauner 2021-03-20 1964 {
c14329d39f2daa Christian Brauner 2023-01-13 @1965 inode->i_gid = mapped_fsgid(idmap, i_user_ns(inode));
db998553cf11dd Christian Brauner 2021-03-20 1966 }
db998553cf11dd Christian Brauner 2021-03-20 1967
:::::: The code at line 1818 was first introduced by commit
:::::: a1ec9040a2a9122605ac26e5725c6de019184419 fs: add i_user_ns() helper
:::::: TO: Christian Brauner <christian.brauner@ubuntu.com>
:::::: CC: Christian Brauner <christian.brauner@ubuntu.com>
--
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:[~2025-11-05 16:15 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-11-05 16:13 [brauner-github:vfs.all 10/12] include/linux/fs.h:1818:26: warning: passing argument 1 of 'from_kuid' makes pointer from integer without a cast 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.