tree:
https://android.googlesource.com/kernel/common android-mainline-tracking
head: 74f61c888eeeb9cbc57d44c61fafe32df9b3da51
commit: a64891703b75424ffac53792e8b2161fecaa51d3 [365/836] ANDROID: Incremental fs:
Support xattrs
config: x86_64-allyesconfig (attached as .config)
compiler: gcc-9 (Debian 9.3.0-22) 9.3.0
reproduce (this is a W=1 build):
git remote add android-common
https://android.googlesource.com/kernel/common
git fetch --no-tags android-common android-mainline-tracking
git checkout a64891703b75424ffac53792e8b2161fecaa51d3
# save the attached .config to linux build tree
make W=1 ARCH=x86_64
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
Note: the android-common/android-mainline-tracking HEAD
74f61c888eeeb9cbc57d44c61fafe32df9b3da51 builds fine.
It only hurts bisectibility.
All errors (new ones prefixed by >>):
fs/incfs/vfs.c:99:11: error: initialization of 'int (*)(struct user_namespace *,
struct inode *, struct dentry *, umode_t)' {aka 'int (*)(struct user_namespace *,
struct inode *, struct dentry *, short unsigned int)'} from incompatible pointer type
'int (*)(struct inode *, struct dentry *, umode_t)' {aka 'int (*)(struct inode
*, struct dentry *, short unsigned int)'} [-Werror=incompatible-pointer-types]
99 | .mkdir = dir_mkdir,
| ^~~~~~~~~
fs/incfs/vfs.c:99:11: note: (near initialization for
'incfs_dir_inode_ops.mkdir')
fs/incfs/vfs.c:100:12: error: initialization of 'int (*)(struct user_namespace *,
struct inode *, struct dentry *, struct inode *, struct dentry *, unsigned int)' from
incompatible pointer type 'int (*)(struct inode *, struct dentry *, struct inode *,
struct dentry *, unsigned int)' [-Werror=incompatible-pointer-types]
100 | .rename = dir_rename_wrap,
| ^~~~~~~~~~~~~~~
fs/incfs/vfs.c:100:12: note: (near initialization for
'incfs_dir_inode_ops.rename')
> fs/incfs/vfs.c:182:9: error: initialization of 'int (*)(const
struct xattr_handler *, struct user_namespace *, struct dentry *, struct inode *, const
char *, const void *, size_t, int)' {aka 'int (*)(const struct xattr_handler *,
struct user_namespace *, struct dentry *, struct inode *, const char *, const void *, long
unsigned int, int)'} from incompatible pointer type 'int (*)(const struct
xattr_handler *, struct dentry *, struct inode *, const char *, const void *, size_t,
int)' {aka 'int (*)(const struct xattr_handler *, struct dentry *, struct inode *,
const char *, const void *, long unsigned int, int)'}
[-Werror=incompatible-pointer-types]
182 | .set = incfs_handler_setxattr,
| ^~~~~~~~~~~~~~~~~~~~~~
fs/incfs/vfs.c:182:9: note: (near initialization for
'incfs_xattr_handler.set')
fs/incfs/vfs.c: In function 'read_size_attr':
fs/incfs/vfs.c:325:28: error: passing argument 1 of 'vfs_getxattr' from
incompatible pointer type [-Werror=incompatible-pointer-types]
325 | bytes_read = vfs_getxattr(backing_dentry, INCFS_XATTR_SIZE_NAME,
| ^~~~~~~~~~~~~~
| |
| struct dentry *
In file included from fs/incfs/vfs.c:17:
include/linux/xattr.h:53:22: note: expected 'struct user_namespace *' but
argument is of type 'struct dentry *'
53 | ssize_t vfs_getxattr(struct user_namespace *, struct dentry *, const char *,
| ^~~~~~~~~~~~~~~~~~~~~~~
In file included from fs/incfs/vfs.c:19:
include/uapi/linux/incrementalfs.h:34:31: error: passing argument 2 of
'vfs_getxattr' from incompatible pointer type
[-Werror=incompatible-pointer-types]
34 | #define INCFS_XATTR_SIZE_NAME (XATTR_USER_PREFIX "incfs.size")
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
| |
| char *
fs/incfs/vfs.c:325:44: note: in expansion of macro 'INCFS_XATTR_SIZE_NAME'
325 | bytes_read = vfs_getxattr(backing_dentry, INCFS_XATTR_SIZE_NAME,
| ^~~~~~~~~~~~~~~~~~~~~
In file included from fs/incfs/vfs.c:17:
include/linux/xattr.h:53:47: note: expected 'struct dentry *' but argument is
of type 'char *'
53 | ssize_t vfs_getxattr(struct user_namespace *, struct dentry *, const char *,
| ^~~~~~~~~~~~~~~
fs/incfs/vfs.c:326:25: warning: passing argument 4 of 'vfs_getxattr' makes
pointer from integer without a cast [-Wint-conversion]
326 | (char *)&attr_value, sizeof(attr_value));
| ^~~~~~~~~~~~~~~~~~
| |
| long unsigned int
In file included from fs/incfs/vfs.c:17:
include/linux/xattr.h:54:8: note: expected 'void *' but argument is of type
'long unsigned int'
54 | void *, size_t);
| ^~~~~~
fs/incfs/vfs.c:325:15: error: too few arguments to function 'vfs_getxattr'
325 | bytes_read = vfs_getxattr(backing_dentry, INCFS_XATTR_SIZE_NAME,
| ^~~~~~~~~~~~
In file included from fs/incfs/vfs.c:17:
include/linux/xattr.h:53:9: note: declared here
53 | ssize_t vfs_getxattr(struct user_namespace *, struct dentry *, const char *,
| ^~~~~~~~~~~~
fs/incfs/vfs.c: In function 'inode_set':
fs/incfs/vfs.c:404:20: error: passing argument 1 of 'inode_init_owner' from
incompatible pointer type [-Werror=incompatible-pointer-types]
404 | inode_init_owner(inode, NULL, S_IFREG | READ_WRITE_FILE_MODE);
| ^~~~~
| |
| struct inode *
In file included from include/linux/huge_mm.h:8,
from include/linux/mm.h:707,
from include/linux/bvec.h:14,
from include/linux/blk_types.h:10,
from include/linux/genhd.h:19,
from include/linux/blkdev.h:8,
from fs/incfs/vfs.c:6:
include/linux/fs.h:1828:46: note: expected 'struct user_namespace *' but
argument is of type 'struct inode *'
1828 | void inode_init_owner(struct user_namespace *mnt_userns, struct inode *inode,
| ~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~
In file included from include/linux/stat.h:7,
from include/linux/fs.h:10,
from include/linux/huge_mm.h:8,
from include/linux/mm.h:707,
from include/linux/bvec.h:14,
from include/linux/blk_types.h:10,
from include/linux/genhd.h:19,
from include/linux/blkdev.h:8,
from fs/incfs/vfs.c:6:
include/uapi/linux/stat.h:12:18: warning: passing argument 3 of
'inode_init_owner' makes pointer from integer without a cast [-Wint-conversion]
12 | #define S_IFREG 0100000
fs/incfs/vfs.c:404:33: note: in expansion of macro 'S_IFREG'
404 | inode_init_owner(inode, NULL, S_IFREG | READ_WRITE_FILE_MODE);
| ^~~~~~~
In file included from include/linux/huge_mm.h:8,
from include/linux/mm.h:707,
from include/linux/bvec.h:14,
from include/linux/blk_types.h:10,
from include/linux/genhd.h:19,
from include/linux/blkdev.h:8,
from fs/incfs/vfs.c:6:
include/linux/fs.h:1829:29: note: expected 'const struct inode *' but argument
is of type 'int'
1829 | const struct inode *dir, umode_t mode);
| ~~~~~~~~~~~~~~~~~~~~^~~
fs/incfs/vfs.c:404:3: error: too few arguments to function 'inode_init_owner'
404 | inode_init_owner(inode, NULL, S_IFREG | READ_WRITE_FILE_MODE);
| ^~~~~~~~~~~~~~~~
In file included from include/linux/huge_mm.h:8,
from include/linux/mm.h:707,
from include/linux/bvec.h:14,
from include/linux/blk_types.h:10,
from include/linux/genhd.h:19,
from include/linux/blkdev.h:8,
from fs/incfs/vfs.c:6:
include/linux/fs.h:1828:6: note: declared here
1828 | void inode_init_owner(struct user_namespace *mnt_userns, struct inode *inode,
| ^~~~~~~~~~~~~~~~
fs/incfs/vfs.c:419:20: error: passing argument 1 of 'inode_init_owner' from
incompatible pointer type [-Werror=incompatible-pointer-types]
419 | inode_init_owner(inode, NULL, S_IFREG | READ_WRITE_FILE_MODE);
| ^~~~~
| |
| struct inode *
vim +182 fs/incfs/vfs.c
178
179 static const struct xattr_handler incfs_xattr_handler = {
180 .prefix = "", /* AKA all attributes */
181 .get = incfs_handler_getxattr,
182 .set = incfs_handler_setxattr,
183 };
184
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org