All of lore.kernel.org
 help / color / mirror / Atom feed
* [android-common:android-mainline-tracking 409/836] fs/incfs/pseudo_files.c:325:24: error: passing argument 1 of 'notify_change' from incompatible pointer type
@ 2021-04-11  7:41 kernel test robot
  0 siblings, 0 replies; only message in thread
From: kernel test robot @ 2021-04-11  7:41 UTC (permalink / raw)
  To: kbuild-all

[-- Attachment #1: Type: text/plain, Size: 28136 bytes --]

tree:   https://android.googlesource.com/kernel/common android-mainline-tracking
head:   74f61c888eeeb9cbc57d44c61fafe32df9b3da51
commit: cf0772edababbf59ea06a5aed0345bdbd76e2d92 [409/836] ANDROID: Incremental fs: Separate pseudo-file code
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 cf0772edababbf59ea06a5aed0345bdbd76e2d92
        # 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@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/pseudo_files.c: In function 'chmod':
>> fs/incfs/pseudo_files.c:325:24: error: passing argument 1 of 'notify_change' from incompatible pointer type [-Werror=incompatible-pointer-types]
     325 |  error = notify_change(dentry, &newattrs, &delegated_inode);
         |                        ^~~~~~
         |                        |
         |                        struct dentry *
   In file included from fs/incfs/pseudo_files.c:7:
   include/linux/fs.h:2865:19: note: expected 'struct user_namespace *' but argument is of type 'struct dentry *'
    2865 | int notify_change(struct user_namespace *, struct dentry *,
         |                   ^~~~~~~~~~~~~~~~~~~~~~~
   fs/incfs/pseudo_files.c:325:32: error: passing argument 2 of 'notify_change' from incompatible pointer type [-Werror=incompatible-pointer-types]
     325 |  error = notify_change(dentry, &newattrs, &delegated_inode);
         |                                ^~~~~~~~~
         |                                |
         |                                struct iattr *
   In file included from fs/incfs/pseudo_files.c:7:
   include/linux/fs.h:2865:44: note: expected 'struct dentry *' but argument is of type 'struct iattr *'
    2865 | int notify_change(struct user_namespace *, struct dentry *,
         |                                            ^~~~~~~~~~~~~~~
   fs/incfs/pseudo_files.c:325:43: error: passing argument 3 of 'notify_change' from incompatible pointer type [-Werror=incompatible-pointer-types]
     325 |  error = notify_change(dentry, &newattrs, &delegated_inode);
         |                                           ^~~~~~~~~~~~~~~~
         |                                           |
         |                                           struct inode **
   In file included from fs/incfs/pseudo_files.c:7:
   include/linux/fs.h:2866:5: note: expected 'struct iattr *' but argument is of type 'struct inode **'
    2866 |     struct iattr *, struct inode **);
         |     ^~~~~~~~~~~~~~
>> fs/incfs/pseudo_files.c:325:10: error: too few arguments to function 'notify_change'
     325 |  error = notify_change(dentry, &newattrs, &delegated_inode);
         |          ^~~~~~~~~~~~~
   In file included from fs/incfs/pseudo_files.c:7:
   include/linux/fs.h:2865:5: note: declared here
    2865 | int notify_change(struct user_namespace *, struct dentry *,
         |     ^~~~~~~~~~~~~
   fs/incfs/pseudo_files.c: In function 'dir_relative_path_resolve':
>> fs/incfs/pseudo_files.c:395:2: error: implicit declaration of function 'ksys_close'; did you mean 'ksys_chown'? [-Werror=implicit-function-declaration]
     395 |  ksys_close(dir_fd);
         |  ^~~~~~~~~~
         |  ksys_chown
   fs/incfs/pseudo_files.c: In function 'ioctl_create_file':
>> fs/incfs/pseudo_files.c:615:21: error: passing argument 1 of 'vfs_create' from incompatible pointer type [-Werror=incompatible-pointer-types]
     615 |  error = vfs_create(index_dir_inode, index_file_dentry, args.mode | 0222,
         |                     ^~~~~~~~~~~~~~~
         |                     |
         |                     struct inode *
   In file included from fs/incfs/pseudo_files.c:7:
   include/linux/fs.h:1771:16: note: expected 'struct user_namespace *' but argument is of type 'struct inode *'
    1771 | int vfs_create(struct user_namespace *, struct inode *,
         |                ^~~~~~~~~~~~~~~~~~~~~~~
   fs/incfs/pseudo_files.c:615:38: error: passing argument 2 of 'vfs_create' from incompatible pointer type [-Werror=incompatible-pointer-types]
     615 |  error = vfs_create(index_dir_inode, index_file_dentry, args.mode | 0222,
         |                                      ^~~~~~~~~~~~~~~~~
         |                                      |
         |                                      struct dentry *
   In file included from fs/incfs/pseudo_files.c:7:
   include/linux/fs.h:1771:41: note: expected 'struct inode *' but argument is of type 'struct dentry *'
    1771 | int vfs_create(struct user_namespace *, struct inode *,
         |                                         ^~~~~~~~~~~~~~
   fs/incfs/pseudo_files.c:615:67: warning: passing argument 3 of 'vfs_create' makes pointer from integer without a cast [-Wint-conversion]
     615 |  error = vfs_create(index_dir_inode, index_file_dentry, args.mode | 0222,
         |                                                         ~~~~~~~~~~^~~~~~
         |                                                                   |
         |                                                                   int
   In file included from fs/incfs/pseudo_files.c:7:
   include/linux/fs.h:1772:9: note: expected 'struct dentry *' but argument is of type 'int'
    1772 |         struct dentry *, umode_t, bool);
         |         ^~~~~~~~~~~~~~~
>> fs/incfs/pseudo_files.c:615:10: error: too few arguments to function 'vfs_create'
     615 |  error = vfs_create(index_dir_inode, index_file_dentry, args.mode | 0222,
         |          ^~~~~~~~~~
   In file included from fs/incfs/pseudo_files.c:7:
   include/linux/fs.h:1771:5: note: declared here
    1771 | int vfs_create(struct user_namespace *, struct inode *,
         |     ^~~~~~~~~~
>> fs/incfs/pseudo_files.c:633:23: error: passing argument 1 of 'vfs_setxattr' from incompatible pointer type [-Werror=incompatible-pointer-types]
     633 |  error = vfs_setxattr(index_file_dentry, INCFS_XATTR_ID_NAME,
         |                       ^~~~~~~~~~~~~~~~~
         |                       |
         |                       struct dentry *
   In file included from include/uapi/linux/incrementalfs.h:17,
                    from fs/incfs/pseudo_files.c:12:
   include/linux/xattr.h:63:18: note: expected 'struct user_namespace *' but argument is of type 'struct dentry *'
      63 | int vfs_setxattr(struct user_namespace *, struct dentry *, const char *,
         |                  ^~~~~~~~~~~~~~~~~~~~~~~
   In file included from fs/incfs/pseudo_files.c:12:
   include/uapi/linux/incrementalfs.h:33:29: error: passing argument 2 of 'vfs_setxattr' from incompatible pointer type [-Werror=incompatible-pointer-types]
      33 | #define INCFS_XATTR_ID_NAME (XATTR_USER_PREFIX "incfs.id")
         |                             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         |                             |
         |                             char *
   fs/incfs/pseudo_files.c:633:42: note: in expansion of macro 'INCFS_XATTR_ID_NAME'
     633 |  error = vfs_setxattr(index_file_dentry, INCFS_XATTR_ID_NAME,
         |                                          ^~~~~~~~~~~~~~~~~~~
   In file included from include/uapi/linux/incrementalfs.h:17,
                    from fs/incfs/pseudo_files.c:12:
   include/linux/xattr.h:63:43: note: expected 'struct dentry *' but argument is of type 'char *'
      63 | int vfs_setxattr(struct user_namespace *, struct dentry *, const char *,
         |                                           ^~~~~~~~~~~~~~~
   fs/incfs/pseudo_files.c:634:16: warning: passing argument 4 of 'vfs_setxattr' makes pointer from integer without a cast [-Wint-conversion]
     634 |   file_id_str, strlen(file_id_str), XATTR_CREATE);
         |                ^~~~~~~~~~~~~~~~~~~
         |                |
         |                size_t {aka long unsigned int}
   In file included from include/uapi/linux/incrementalfs.h:17,
                    from fs/incfs/pseudo_files.c:12:
   include/linux/xattr.h:64:4: note: expected 'const void *' but argument is of type 'size_t' {aka 'long unsigned int'}
      64 |    const void *, size_t, int);
         |    ^~~~~~~~~~~~
>> fs/incfs/pseudo_files.c:633:10: error: too few arguments to function 'vfs_setxattr'
     633 |  error = vfs_setxattr(index_file_dentry, INCFS_XATTR_ID_NAME,
         |          ^~~~~~~~~~~~
   In file included from include/uapi/linux/incrementalfs.h:17,
                    from fs/incfs/pseudo_files.c:12:
   include/linux/xattr.h:63:5: note: declared here
      63 | int vfs_setxattr(struct user_namespace *, struct dentry *, const char *,
         |     ^~~~~~~~~~~~
   fs/incfs/pseudo_files.c:642:23: error: passing argument 1 of 'vfs_setxattr' from incompatible pointer type [-Werror=incompatible-pointer-types]
     642 |  error = vfs_setxattr(index_file_dentry, INCFS_XATTR_SIZE_NAME,
         |                       ^~~~~~~~~~~~~~~~~
         |                       |
         |                       struct dentry *
   In file included from include/uapi/linux/incrementalfs.h:17,
                    from fs/incfs/pseudo_files.c:12:
   include/linux/xattr.h:63:18: note: expected 'struct user_namespace *' but argument is of type 'struct dentry *'
      63 | int vfs_setxattr(struct user_namespace *, struct dentry *, const char *,
         |                  ^~~~~~~~~~~~~~~~~~~~~~~
   In file included from fs/incfs/pseudo_files.c:12:
   include/uapi/linux/incrementalfs.h:34:31: error: passing argument 2 of 'vfs_setxattr' from incompatible pointer type [-Werror=incompatible-pointer-types]
      34 | #define INCFS_XATTR_SIZE_NAME (XATTR_USER_PREFIX "incfs.size")
         |                               ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         |                               |
         |                               char *
   fs/incfs/pseudo_files.c:642:42: note: in expansion of macro 'INCFS_XATTR_SIZE_NAME'
     642 |  error = vfs_setxattr(index_file_dentry, INCFS_XATTR_SIZE_NAME,
         |                                          ^~~~~~~~~~~~~~~~~~~~~
   In file included from include/uapi/linux/incrementalfs.h:17,
                    from fs/incfs/pseudo_files.c:12:
   include/linux/xattr.h:63:43: note: expected 'struct dentry *' but argument is of type 'char *'
      63 | int vfs_setxattr(struct user_namespace *, struct dentry *, const char *,
         |                                           ^~~~~~~~~~~~~~~
   fs/incfs/pseudo_files.c:643:29: warning: passing argument 4 of 'vfs_setxattr' makes pointer from integer without a cast [-Wint-conversion]
     643 |   (char *)&size_attr_value, sizeof(size_attr_value),
         |                             ^~~~~~~~~~~~~~~~~~~~~~~
         |                             |
         |                             long unsigned int
   In file included from include/uapi/linux/incrementalfs.h:17,
                    from fs/incfs/pseudo_files.c:12:
   include/linux/xattr.h:64:4: note: expected 'const void *' but argument is of type 'long unsigned int'
      64 |    const void *, size_t, int);
         |    ^~~~~~~~~~~~
   fs/incfs/pseudo_files.c:642:10: error: too few arguments to function 'vfs_setxattr'
     642 |  error = vfs_setxattr(index_file_dentry, INCFS_XATTR_SIZE_NAME,
         |          ^~~~~~~~~~~~
   In file included from include/uapi/linux/incrementalfs.h:17,
                    from fs/incfs/pseudo_files.c:12:
   include/linux/xattr.h:63:5: note: declared here
      63 | int vfs_setxattr(struct user_namespace *, struct dentry *, const char *,
         |     ^~~~~~~~~~~~
   fs/incfs/pseudo_files.c:670:24: error: passing argument 1 of 'vfs_setxattr' from incompatible pointer type [-Werror=incompatible-pointer-types]
     670 |   error = vfs_setxattr(index_file_dentry,
         |                        ^~~~~~~~~~~~~~~~~
         |                        |
         |                        struct dentry *
   In file included from include/uapi/linux/incrementalfs.h:17,
                    from fs/incfs/pseudo_files.c:12:
   include/linux/xattr.h:63:18: note: expected 'struct user_namespace *' but argument is of type 'struct dentry *'
      63 | int vfs_setxattr(struct user_namespace *, struct dentry *, const char *,
         |                  ^~~~~~~~~~~~~~~~~~~~~~~
   In file included from fs/incfs/pseudo_files.c:12:
   include/uapi/linux/incrementalfs.h:35:35: error: passing argument 2 of 'vfs_setxattr' from incompatible pointer type [-Werror=incompatible-pointer-types]
      35 | #define INCFS_XATTR_METADATA_NAME (XATTR_USER_PREFIX "incfs.metadata")
         |                                   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         |                                   |
         |                                   char *
   fs/incfs/pseudo_files.c:671:5: note: in expansion of macro 'INCFS_XATTR_METADATA_NAME'
     671 |     INCFS_XATTR_METADATA_NAME,
         |     ^~~~~~~~~~~~~~~~~~~~~~~~~
   In file included from include/uapi/linux/incrementalfs.h:17,
                    from fs/incfs/pseudo_files.c:12:
   include/linux/xattr.h:63:43: note: expected 'struct dentry *' but argument is of type 'char *'
      63 | int vfs_setxattr(struct user_namespace *, struct dentry *, const char *,
         |                                           ^~~~~~~~~~~~~~~
   fs/incfs/pseudo_files.c:672:21: warning: passing argument 4 of 'vfs_setxattr' makes pointer from integer without a cast [-Wint-conversion]
     672 |     attr_value, args.file_attr_len,
         |                 ~~~~^~~~~~~~~~~~~~
         |                     |
         |                     __u32 {aka unsigned int}
   In file included from include/uapi/linux/incrementalfs.h:17,
                    from fs/incfs/pseudo_files.c:12:
   include/linux/xattr.h:64:4: note: expected 'const void *' but argument is of type '__u32' {aka 'unsigned int'}
      64 |    const void *, size_t, int);
         |    ^~~~~~~~~~~~
   fs/incfs/pseudo_files.c:670:11: error: too few arguments to function 'vfs_setxattr'
     670 |   error = vfs_setxattr(index_file_dentry,
         |           ^~~~~~~~~~~~
   In file included from include/uapi/linux/incrementalfs.h:17,
                    from fs/incfs/pseudo_files.c:12:
   include/linux/xattr.h:63:5: note: declared here
      63 | int vfs_setxattr(struct user_namespace *, struct dentry *, const char *,
         |     ^~~~~~~~~~~~
   fs/incfs/pseudo_files.c: In function 'ioctl_create_mapped_file':
>> fs/incfs/pseudo_files.c:819:23: error: passing argument 1 of 'vfs_getxattr' from incompatible pointer type [-Werror=incompatible-pointer-types]
     819 |  error = vfs_getxattr(source_file_dentry, INCFS_XATTR_SIZE_NAME,
         |                       ^~~~~~~~~~~~~~~~~~
         |                       |
         |                       struct dentry *
   In file included from include/uapi/linux/incrementalfs.h:17,
                    from fs/incfs/pseudo_files.c:12:
   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/pseudo_files.c:12:
   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/pseudo_files.c:819:43: note: in expansion of macro 'INCFS_XATTR_SIZE_NAME'
     819 |  error = vfs_getxattr(source_file_dentry, INCFS_XATTR_SIZE_NAME,
         |                                           ^~~~~~~~~~~~~~~~~~~~~
   In file included from include/uapi/linux/incrementalfs.h:17,
                    from fs/incfs/pseudo_files.c:12:
   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/pseudo_files.c:820:35: warning: passing argument 4 of 'vfs_getxattr' makes pointer from integer without a cast [-Wint-conversion]
     820 |         (char *)&size_attr_value, sizeof(size_attr_value));
         |                                   ^~~~~~~~~~~~~~~~~~~~~~~
         |                                   |
         |                                   long unsigned int
   In file included from include/uapi/linux/incrementalfs.h:17,
                    from fs/incfs/pseudo_files.c:12:
   include/linux/xattr.h:54:8: note: expected 'void *' but argument is of type 'long unsigned int'
      54 |        void *, size_t);
         |        ^~~~~~
>> fs/incfs/pseudo_files.c:819:10: error: too few arguments to function 'vfs_getxattr'
     819 |  error = vfs_getxattr(source_file_dentry, INCFS_XATTR_SIZE_NAME,
         |          ^~~~~~~~~~~~
   In file included from include/uapi/linux/incrementalfs.h:17,
                    from fs/incfs/pseudo_files.c:12:
   include/linux/xattr.h:53:9: note: declared here
      53 | ssize_t vfs_getxattr(struct user_namespace *, struct dentry *, const char *,
         |         ^~~~~~~~~~~~
   fs/incfs/pseudo_files.c:869:21: error: passing argument 1 of 'vfs_create' from incompatible pointer type [-Werror=incompatible-pointer-types]
     869 |  error = vfs_create(parent_inode, file_dentry, args.mode | 0222, true);
         |                     ^~~~~~~~~~~~
         |                     |
         |                     struct inode *
   In file included from fs/incfs/pseudo_files.c:7:
   include/linux/fs.h:1771:16: note: expected 'struct user_namespace *' but argument is of type 'struct inode *'
    1771 | int vfs_create(struct user_namespace *, struct inode *,
         |                ^~~~~~~~~~~~~~~~~~~~~~~
   fs/incfs/pseudo_files.c:869:35: error: passing argument 2 of 'vfs_create' from incompatible pointer type [-Werror=incompatible-pointer-types]
     869 |  error = vfs_create(parent_inode, file_dentry, args.mode | 0222, true);
         |                                   ^~~~~~~~~~~
         |                                   |
         |                                   struct dentry *
   In file included from fs/incfs/pseudo_files.c:7:
   include/linux/fs.h:1771:41: note: expected 'struct inode *' but argument is of type 'struct dentry *'
    1771 | int vfs_create(struct user_namespace *, struct inode *,
         |                                         ^~~~~~~~~~~~~~
   fs/incfs/pseudo_files.c:869:58: warning: passing argument 3 of 'vfs_create' makes pointer from integer without a cast [-Wint-conversion]
     869 |  error = vfs_create(parent_inode, file_dentry, args.mode | 0222, true);
         |                                                ~~~~~~~~~~^~~~~~
         |                                                          |
         |                                                          int
   In file included from fs/incfs/pseudo_files.c:7:
   include/linux/fs.h:1772:9: note: expected 'struct dentry *' but argument is of type 'int'
    1772 |         struct dentry *, umode_t, bool);
         |         ^~~~~~~~~~~~~~~
   fs/incfs/pseudo_files.c:869:10: error: too few arguments to function 'vfs_create'
     869 |  error = vfs_create(parent_inode, file_dentry, args.mode | 0222, true);
         |          ^~~~~~~~~~
   In file included from fs/incfs/pseudo_files.c:7:
   include/linux/fs.h:1771:5: note: declared here
    1771 | int vfs_create(struct user_namespace *, struct inode *,
         |     ^~~~~~~~~~
   fs/incfs/pseudo_files.c:876:23: error: passing argument 1 of 'vfs_setxattr' from incompatible pointer type [-Werror=incompatible-pointer-types]
     876 |  error = vfs_setxattr(file_dentry, INCFS_XATTR_SIZE_NAME,
         |                       ^~~~~~~~~~~
         |                       |
         |                       struct dentry *
   In file included from include/uapi/linux/incrementalfs.h:17,
                    from fs/incfs/pseudo_files.c:12:
   include/linux/xattr.h:63:18: note: expected 'struct user_namespace *' but argument is of type 'struct dentry *'
      63 | int vfs_setxattr(struct user_namespace *, struct dentry *, const char *,
         |                  ^~~~~~~~~~~~~~~~~~~~~~~
   In file included from fs/incfs/pseudo_files.c:12:
   include/uapi/linux/incrementalfs.h:34:31: error: passing argument 2 of 'vfs_setxattr' from incompatible pointer type [-Werror=incompatible-pointer-types]
      34 | #define INCFS_XATTR_SIZE_NAME (XATTR_USER_PREFIX "incfs.size")
         |                               ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         |                               |
         |                               char *
   fs/incfs/pseudo_files.c:876:36: note: in expansion of macro 'INCFS_XATTR_SIZE_NAME'
     876 |  error = vfs_setxattr(file_dentry, INCFS_XATTR_SIZE_NAME,
         |                                    ^~~~~~~~~~~~~~~~~~~~~
   In file included from include/uapi/linux/incrementalfs.h:17,
                    from fs/incfs/pseudo_files.c:12:
   include/linux/xattr.h:63:43: note: expected 'struct dentry *' but argument is of type 'char *'
      63 | int vfs_setxattr(struct user_namespace *, struct dentry *, const char *,
         |                                           ^~~~~~~~~~~~~~~
   fs/incfs/pseudo_files.c:877:29: warning: passing argument 4 of 'vfs_setxattr' makes pointer from integer without a cast [-Wint-conversion]
     877 |   (char *)&size_attr_value, sizeof(size_attr_value),
         |                             ^~~~~~~~~~~~~~~~~~~~~~~
         |                             |
         |                             long unsigned int
   In file included from include/uapi/linux/incrementalfs.h:17,
                    from fs/incfs/pseudo_files.c:12:
   include/linux/xattr.h:64:4: note: expected 'const void *' but argument is of type 'long unsigned int'
      64 |    const void *, size_t, int);
         |    ^~~~~~~~~~~~
   fs/incfs/pseudo_files.c:876:10: error: too few arguments to function 'vfs_setxattr'
     876 |  error = vfs_setxattr(file_dentry, INCFS_XATTR_SIZE_NAME,
         |          ^~~~~~~~~~~~
   In file included from include/uapi/linux/incrementalfs.h:17,
                    from fs/incfs/pseudo_files.c:12:
   include/linux/xattr.h:63:5: note: declared here
      63 | int vfs_setxattr(struct user_namespace *, struct dentry *, const char *,
         |     ^~~~~~~~~~~~
   fs/incfs/pseudo_files.c: In function 'get_pseudo_inode':
>> fs/incfs/pseudo_files.c:941:19: error: passing argument 1 of 'inode_init_owner' from incompatible pointer type [-Werror=incompatible-pointer-types]
     941 |  inode_init_owner(inode, NULL, S_IFREG | READ_WRITE_FILE_MODE);
         |                   ^~~~~
         |                   |
         |                   struct inode *
   In file included from fs/incfs/pseudo_files.c:7:
   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 fs/incfs/pseudo_files.c:7:
   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/pseudo_files.c:941:32: note: in expansion of macro 'S_IFREG'
     941 |  inode_init_owner(inode, NULL, S_IFREG | READ_WRITE_FILE_MODE);
         |                                ^~~~~~~
   In file included from fs/incfs/pseudo_files.c:7:
   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/pseudo_files.c:941:2: error: too few arguments to function 'inode_init_owner'
     941 |  inode_init_owner(inode, NULL, S_IFREG | READ_WRITE_FILE_MODE);
         |  ^~~~~~~~~~~~~~~~
   In file included from fs/incfs/pseudo_files.c:7:
   include/linux/fs.h:1828:6: note: declared here
    1828 | void inode_init_owner(struct user_namespace *mnt_userns, struct inode *inode,
         |      ^~~~~~~~~~~~~~~~
   cc1: some warnings being treated as errors


vim +/notify_change +325 fs/incfs/pseudo_files.c

   313	
   314	static int chmod(struct dentry *dentry, umode_t mode)
   315	{
   316		struct inode *inode = dentry->d_inode;
   317		struct inode *delegated_inode = NULL;
   318		struct iattr newattrs;
   319		int error;
   320	
   321	retry_deleg:
   322		inode_lock(inode);
   323		newattrs.ia_mode = (mode & S_IALLUGO) | (inode->i_mode & ~S_IALLUGO);
   324		newattrs.ia_valid = ATTR_MODE | ATTR_CTIME;
 > 325		error = notify_change(dentry, &newattrs, &delegated_inode);
   326		inode_unlock(inode);
   327		if (delegated_inode) {
   328			error = break_deleg_wait(&delegated_inode);
   329			if (!error)
   330				goto retry_deleg;
   331		}
   332		return error;
   333	}
   334	
   335	static bool is_pseudo_filename(struct mem_range name)
   336	{
   337		if (incfs_equal_ranges(pending_reads_file_name_range, name))
   338			return true;
   339		if (incfs_equal_ranges(log_file_name_range, name))
   340			return true;
   341	
   342		return false;
   343	}
   344	
   345	static int validate_name(char *file_name)
   346	{
   347		struct mem_range name = range(file_name, strlen(file_name));
   348		int i = 0;
   349	
   350		if (name.len > INCFS_MAX_NAME_LEN)
   351			return -ENAMETOOLONG;
   352	
   353		if (is_pseudo_filename(name))
   354			return -EINVAL;
   355	
   356		for (i = 0; i < name.len; i++)
   357			if (name.data[i] == '/')
   358				return -EINVAL;
   359	
   360		return 0;
   361	}
   362	
   363	static int dir_relative_path_resolve(
   364				struct mount_info *mi,
   365				const char __user *relative_path,
   366				struct path *result_path)
   367	{
   368		struct path *base_path = &mi->mi_backing_dir_path;
   369		int dir_fd = get_unused_fd_flags(0);
   370		struct file *dir_f = NULL;
   371		int error = 0;
   372	
   373		if (dir_fd < 0)
   374			return dir_fd;
   375	
   376		dir_f = dentry_open(base_path, O_RDONLY | O_NOATIME, mi->mi_owner);
   377	
   378		if (IS_ERR(dir_f)) {
   379			error = PTR_ERR(dir_f);
   380			goto out;
   381		}
   382		fd_install(dir_fd, dir_f);
   383	
   384		if (!relative_path) {
   385			/* No relative path given, just return the base dir. */
   386			*result_path = *base_path;
   387			path_get(result_path);
   388			goto out;
   389		}
   390	
   391		error = user_path_at_empty(dir_fd, relative_path,
   392			LOOKUP_FOLLOW | LOOKUP_DIRECTORY, result_path, NULL);
   393	
   394	out:
 > 395		ksys_close(dir_fd);
   396		if (error)
   397			pr_debug("incfs: %s %d\n", __func__, error);
   398		return error;
   399	}
   400	

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org

[-- Attachment #2: config.gz --]
[-- Type: application/gzip, Size: 65193 bytes --]

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2021-04-11  7:41 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-04-11  7:41 [android-common:android-mainline-tracking 409/836] fs/incfs/pseudo_files.c:325:24: error: passing argument 1 of 'notify_change' from incompatible pointer type 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.