Hi Konstantin, Thank you for the patch! Yet something to improve: [auto build test ERROR on dd86e7fa07a3ec33c92c957ea7b642c4702516a0] url: https://github.com/0day-ci/linux/commits/Konstantin-Komarov/NTFS-read-write-driver-GPL-implementation-by-Paragon-Software/20210206-032915 base: dd86e7fa07a3ec33c92c957ea7b642c4702516a0 config: sh-allmodconfig (attached as .config) compiler: sh4-linux-gcc (GCC) 9.3.0 reproduce (this is a W=1 build): wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross chmod +x ~/bin/make.cross # https://github.com/0day-ci/linux/commit/fc64675c044d5fc1e824fdc59526481d4f863cf7 git remote add linux-review https://github.com/0day-ci/linux git fetch --no-tags linux-review Konstantin-Komarov/NTFS-read-write-driver-GPL-implementation-by-Paragon-Software/20210206-032915 git checkout fc64675c044d5fc1e824fdc59526481d4f863cf7 # save the attached .config to linux build tree COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=sh If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot <lkp@xxxxxxxxx> All error/warnings (new ones prefixed by >>): In file included from fs/ntfs3/file.c:17: fs/ntfs3/ntfs.h:428:1: warning: 'inline' is not at beginning of declaration [-Wold-style-declaration] 428 | static const inline __le16 *attr_name(const struct ATTRIB *attr) | ^~~~~~ fs/ntfs3/ntfs.h:545:1: warning: 'inline' is not at beginning of declaration [-Wold-style-declaration] 545 | static const inline __le16 *le_name(const struct ATTR_LIST_ENTRY *le) | ^~~~~~ fs/ntfs3/file.c: In function 'ntfs_getattr': fs/ntfs3/file.c:93:19: error: passing argument 1 of 'generic_fillattr' from incompatible pointer type [-Werror=incompatible-pointer-types] 93 | generic_fillattr(mnt_userns, inode, stat); | ^~~~~~~~~~ | | | struct user_namespace * In file included from include/linux/backing-dev.h:13, from fs/ntfs3/file.c:8: include/linux/fs.h:3093:30: note: expected 'struct inode *' but argument is of type 'struct user_namespace *' 3093 | extern void generic_fillattr(struct inode *, struct kstat *); | ^~~~~~~~~~~~~~ fs/ntfs3/file.c:93:31: error: passing argument 2 of 'generic_fillattr' from incompatible pointer type [-Werror=incompatible-pointer-types] 93 | generic_fillattr(mnt_userns, inode, stat); | ^~~~~ | | | struct inode * In file included from include/linux/backing-dev.h:13, from fs/ntfs3/file.c:8: include/linux/fs.h:3093:46: note: expected 'struct kstat *' but argument is of type 'struct inode *' 3093 | extern void generic_fillattr(struct inode *, struct kstat *); | ^~~~~~~~~~~~~~ >> fs/ntfs3/file.c:93:2: error: too many arguments to function 'generic_fillattr' 93 | generic_fillattr(mnt_userns, inode, stat); | ^~~~~~~~~~~~~~~~ In file included from include/linux/backing-dev.h:13, from fs/ntfs3/file.c:8: include/linux/fs.h:3093:13: note: declared here 3093 | extern void generic_fillattr(struct inode *, struct kstat *); | ^~~~~~~~~~~~~~~~ fs/ntfs3/file.c: In function 'ntfs_truncate': fs/ntfs3/file.c:402:6: warning: variable 'vcn' set but not used [-Wunused-but-set-variable] 402 | u32 vcn; | ^~~ fs/ntfs3/file.c: In function 'ntfs3_setattr': fs/ntfs3/file.c:639:24: error: passing argument 1 of 'setattr_prepare' from incompatible pointer type [-Werror=incompatible-pointer-types] 639 | err = setattr_prepare(mnt_userns, dentry, attr); | ^~~~~~~~~~ | | | struct user_namespace * In file included from include/linux/backing-dev.h:13, from fs/ntfs3/file.c:8: include/linux/fs.h:3214:28: note: expected 'struct dentry *' but argument is of type 'struct user_namespace *' 3214 | extern int setattr_prepare(struct dentry *, struct iattr *); | ^~~~~~~~~~~~~~~ fs/ntfs3/file.c:639:36: error: passing argument 2 of 'setattr_prepare' from incompatible pointer type [-Werror=incompatible-pointer-types] 639 | err = setattr_prepare(mnt_userns, dentry, attr); | ^~~~~~ | | | struct dentry * In file included from include/linux/backing-dev.h:13, from fs/ntfs3/file.c:8: include/linux/fs.h:3214:45: note: expected 'struct iattr *' but argument is of type 'struct dentry *' 3214 | extern int setattr_prepare(struct dentry *, struct iattr *); | ^~~~~~~~~~~~~~ >> fs/ntfs3/file.c:639:8: error: too many arguments to function 'setattr_prepare' 639 | err = setattr_prepare(mnt_userns, dentry, attr); | ^~~~~~~~~~~~~~~ In file included from include/linux/backing-dev.h:13, from fs/ntfs3/file.c:8: include/linux/fs.h:3214:12: note: declared here 3214 | extern int setattr_prepare(struct dentry *, struct iattr *); | ^~~~~~~~~~~~~~~ fs/ntfs3/file.c:664:15: error: passing argument 1 of 'setattr_copy' from incompatible pointer type [-Werror=incompatible-pointer-types] 664 | setattr_copy(mnt_userns, inode, attr); | ^~~~~~~~~~ | | | struct user_namespace * In file included from include/linux/backing-dev.h:13, from fs/ntfs3/file.c:8: include/linux/fs.h:3216:40: note: expected 'struct inode *' but argument is of type 'struct user_namespace *' 3216 | extern void setattr_copy(struct inode *inode, const struct iattr *attr); | ~~~~~~~~~~~~~~^~~~~ fs/ntfs3/file.c:664:27: error: passing argument 2 of 'setattr_copy' from incompatible pointer type [-Werror=incompatible-pointer-types] 664 | setattr_copy(mnt_userns, inode, attr); | ^~~~~ | | | struct inode * In file included from include/linux/backing-dev.h:13, from fs/ntfs3/file.c:8: include/linux/fs.h:3216:67: note: expected 'const struct iattr *' but argument is of type 'struct inode *' 3216 | extern void setattr_copy(struct inode *inode, const struct iattr *attr); | ~~~~~~~~~~~~~~~~~~~~^~~~ >> fs/ntfs3/file.c:664:2: error: too many arguments to function 'setattr_copy' 664 | setattr_copy(mnt_userns, inode, attr); | ^~~~~~~~~~~~ In file included from include/linux/backing-dev.h:13, from fs/ntfs3/file.c:8: include/linux/fs.h:3216:13: note: declared here 3216 | extern void setattr_copy(struct inode *inode, const struct iattr *attr); | ^~~~~~~~~~~~ fs/ntfs3/file.c: At top level: >> fs/ntfs3/file.c:1109:13: error: initialization of 'int (*)(const struct path *, struct kstat *, u32, unsigned int)' {aka 'int (*)(const struct path *, struct kstat *, unsigned int, unsigned int)'} from incompatible pointer type 'int (*)(struct user_namespace *, const struct path *, struct kstat *, u32, u32)' {aka 'int (*)(struct user_namespace *, const struct path *, struct kstat *, unsigned int, unsigned int)'} [-Werror=incompatible-pointer-types] 1109 | .getattr = ntfs_getattr, | ^~~~~~~~~~~~ fs/ntfs3/file.c:1109:13: note: (near initialization for 'ntfs_file_inode_operations.getattr') >> fs/ntfs3/file.c:1110:13: error: initialization of 'int (*)(struct dentry *, struct iattr *)' from incompatible pointer type 'int (*)(struct user_namespace *, struct dentry *, struct iattr *)' [-Werror=incompatible-pointer-types] 1110 | .setattr = ntfs3_setattr, | ^~~~~~~~~~~~~ fs/ntfs3/file.c:1110:13: note: (near initialization for 'ntfs_file_inode_operations.setattr') >> fs/ntfs3/file.c:1112:16: error: initialization of 'int (*)(struct inode *, int)' from incompatible pointer type 'int (*)(struct user_namespace *, struct inode *, int)' [-Werror=incompatible-pointer-types] 1112 | .permission = ntfs_permission, | ^~~~~~~~~~~~~~~ fs/ntfs3/file.c:1112:16: note: (near initialization for 'ntfs_file_inode_operations.permission') >> fs/ntfs3/file.c:1114:13: error: initialization of 'int (*)(struct inode *, struct posix_acl *, int)' from incompatible pointer type 'int (*)(struct user_namespace *, struct inode *, struct posix_acl *, int)' [-Werror=incompatible-pointer-types] 1114 | .set_acl = ntfs_set_acl, | ^~~~~~~~~~~~ fs/ntfs3/file.c:1114:13: note: (near initialization for 'ntfs_file_inode_operations.set_acl') cc1: some warnings being treated as errors -- In file included from fs/ntfs3/inode.c:20: fs/ntfs3/ntfs.h:428:1: warning: 'inline' is not at beginning of declaration [-Wold-style-declaration] 428 | static const inline __le16 *attr_name(const struct ATTRIB *attr) | ^~~~~~ fs/ntfs3/ntfs.h:545:1: warning: 'inline' is not at beginning of declaration [-Wold-style-declaration] 545 | static const inline __le16 *le_name(const struct ATTR_LIST_ENTRY *le) | ^~~~~~ >> fs/ntfs3/inode.c:2036:13: error: initialization of 'int (*)(struct dentry *, struct iattr *)' from incompatible pointer type 'int (*)(struct user_namespace *, struct dentry *, struct iattr *)' [-Werror=incompatible-pointer-types] 2036 | .setattr = ntfs3_setattr, | ^~~~~~~~~~~~~ fs/ntfs3/inode.c:2036:13: note: (near initialization for 'ntfs_link_inode_operations.setattr') >> fs/ntfs3/inode.c:2038:16: error: initialization of 'int (*)(struct inode *, int)' from incompatible pointer type 'int (*)(struct user_namespace *, struct inode *, int)' [-Werror=incompatible-pointer-types] 2038 | .permission = ntfs_permission, | ^~~~~~~~~~~~~~~ fs/ntfs3/inode.c:2038:16: note: (near initialization for 'ntfs_link_inode_operations.permission') >> fs/ntfs3/inode.c:2040:13: error: initialization of 'int (*)(struct inode *, struct posix_acl *, int)' from incompatible pointer type 'int (*)(struct user_namespace *, struct inode *, struct posix_acl *, int)' [-Werror=incompatible-pointer-types] 2040 | .set_acl = ntfs_set_acl, | ^~~~~~~~~~~~ fs/ntfs3/inode.c:2040:13: note: (near initialization for 'ntfs_link_inode_operations.set_acl') cc1: some warnings being treated as errors -- In file included from fs/ntfs3/index.c:14: fs/ntfs3/ntfs.h:428:1: warning: 'inline' is not at beginning of declaration [-Wold-style-declaration] 428 | static const inline __le16 *attr_name(const struct ATTRIB *attr) | ^~~~~~ fs/ntfs3/ntfs.h:545:1: warning: 'inline' is not at beginning of declaration [-Wold-style-declaration] 545 | static const inline __le16 *le_name(const struct ATTR_LIST_ENTRY *le) | ^~~~~~ fs/ntfs3/index.c:546:1: warning: 'inline' is not at beginning of declaration [-Wold-style-declaration] 546 | static const inline struct NTFS_DE *hdr_find_split(const struct INDEX_HDR *hdr) | ^~~~~~ fs/ntfs3/index.c:577:1: warning: 'inline' is not at beginning of declaration [-Wold-style-declaration] 577 | static const inline struct NTFS_DE * | ^~~~~~ fs/ntfs3/index.c: In function 'indx_add_allocate': >> fs/ntfs3/index.c:1457:17: warning: variable 'alloc_size' set but not used [-Wunused-but-set-variable] 1457 | u64 data_size, alloc_size; | ^~~~~~~~~~ fs/ntfs3/index.c: In function 'indx_insert_into_root': >> fs/ntfs3/index.c:1547:8: warning: variable 'next' set but not used [-Wunused-but-set-variable] 1547 | char *next; | ^~~~ >> fs/ntfs3/index.c:1544:40: warning: variable 'aoff' set but not used [-Wunused-but-set-variable] 1544 | u32 hdr_used, hdr_total, asize, used, aoff, to_move; | ^~~~ -- In file included from fs/ntfs3/namei.c:16: fs/ntfs3/ntfs.h:428:1: warning: 'inline' is not at beginning of declaration [-Wold-style-declaration] 428 | static const inline __le16 *attr_name(const struct ATTRIB *attr) | ^~~~~~ fs/ntfs3/ntfs.h:545:1: warning: 'inline' is not at beginning of declaration [-Wold-style-declaration] 545 | static const inline __le16 *le_name(const struct ATTR_LIST_ENTRY *le) | ^~~~~~ >> fs/ntfs3/namei.c:577:12: error: initialization of 'int (*)(struct inode *, struct dentry *, umode_t, bool)' {aka 'int (*)(struct inode *, struct dentry *, short unsigned int, _Bool)'} from incompatible pointer type 'int (*)(struct user_namespace *, struct inode *, struct dentry *, umode_t, bool)' {aka 'int (*)(struct user_namespace *, struct inode *, struct dentry *, short unsigned int, _Bool)'} [-Werror=incompatible-pointer-types] 577 | .create = ntfs_create, | ^~~~~~~~~~~ fs/ntfs3/namei.c:577:12: note: (near initialization for 'ntfs_dir_inode_operations.create') >> fs/ntfs3/namei.c:580:13: error: initialization of 'int (*)(struct inode *, struct dentry *, const char *)' from incompatible pointer type 'int (*)(struct user_namespace *, struct inode *, struct dentry *, const char *)' [-Werror=incompatible-pointer-types] 580 | .symlink = ntfs_symlink, | ^~~~~~~~~~~~ fs/ntfs3/namei.c:580:13: note: (near initialization for 'ntfs_dir_inode_operations.symlink') >> fs/ntfs3/namei.c:581:11: error: initialization of 'int (*)(struct inode *, struct dentry *, umode_t)' {aka 'int (*)(struct inode *, struct dentry *, short unsigned int)'} from incompatible pointer type 'int (*)(struct user_namespace *, struct inode *, struct dentry *, umode_t)' {aka 'int (*)(struct user_namespace *, struct inode *, struct dentry *, short unsigned int)'} [-Werror=incompatible-pointer-types] 581 | .mkdir = ntfs_mkdir, | ^~~~~~~~~~ fs/ntfs3/namei.c:581:11: note: (near initialization for 'ntfs_dir_inode_operations.mkdir') >> fs/ntfs3/namei.c:583:12: error: initialization of 'int (*)(struct inode *, struct dentry *, struct inode *, struct dentry *, unsigned int)' from incompatible pointer type 'int (*)(struct user_namespace *, struct inode *, struct dentry *, struct inode *, struct dentry *, u32)' {aka 'int (*)(struct user_namespace *, struct inode *, struct dentry *, struct inode *, struct dentry *, unsigned int)'} [-Werror=incompatible-pointer-types] 583 | .rename = ntfs_rename, | ^~~~~~~~~~~ fs/ntfs3/namei.c:583:12: note: (near initialization for 'ntfs_dir_inode_operations.rename') >> fs/ntfs3/namei.c:584:16: error: initialization of 'int (*)(struct inode *, int)' from incompatible pointer type 'int (*)(struct user_namespace *, struct inode *, int)' [-Werror=incompatible-pointer-types] 584 | .permission = ntfs_permission, | ^~~~~~~~~~~~~~~ fs/ntfs3/namei.c:584:16: note: (near initialization for 'ntfs_dir_inode_operations.permission') >> fs/ntfs3/namei.c:586:13: error: initialization of 'int (*)(struct inode *, struct posix_acl *, int)' from incompatible pointer type 'int (*)(struct user_namespace *, struct inode *, struct posix_acl *, int)' [-Werror=incompatible-pointer-types] 586 | .set_acl = ntfs_set_acl, | ^~~~~~~~~~~~ fs/ntfs3/namei.c:586:13: note: (near initialization for 'ntfs_dir_inode_operations.set_acl') >> fs/ntfs3/namei.c:587:13: error: initialization of 'int (*)(struct dentry *, struct iattr *)' from incompatible pointer type 'int (*)(struct user_namespace *, struct dentry *, struct iattr *)' [-Werror=incompatible-pointer-types] 587 | .setattr = ntfs3_setattr, | ^~~~~~~~~~~~~ fs/ntfs3/namei.c:587:13: note: (near initialization for 'ntfs_dir_inode_operations.setattr') >> fs/ntfs3/namei.c:588:13: error: initialization of 'int (*)(const struct path *, struct kstat *, u32, unsigned int)' {aka 'int (*)(const struct path *, struct kstat *, unsigned int, unsigned int)'} from incompatible pointer type 'int (*)(struct user_namespace *, const struct path *, struct kstat *, u32, u32)' {aka 'int (*)(struct user_namespace *, const struct path *, struct kstat *, unsigned int, unsigned int)'} [-Werror=incompatible-pointer-types] 588 | .getattr = ntfs_getattr, | ^~~~~~~~~~~~ fs/ntfs3/namei.c:588:13: note: (near initialization for 'ntfs_dir_inode_operations.getattr') cc1: some warnings being treated as errors -- In file included from fs/ntfs3/xattr.c:17: fs/ntfs3/ntfs.h:428:1: warning: 'inline' is not at beginning of declaration [-Wold-style-declaration] 428 | static const inline __le16 *attr_name(const struct ATTRIB *attr) | ^~~~~~ fs/ntfs3/ntfs.h:545:1: warning: 'inline' is not at beginning of declaration [-Wold-style-declaration] 545 | static const inline __le16 *le_name(const struct ATTR_LIST_ENTRY *le) | ^~~~~~ fs/ntfs3/xattr.c: In function 'ntfs_xattr_set_acl': >> fs/ntfs3/xattr.c:656:30: error: passing argument 1 of 'inode_owner_or_capable' from incompatible pointer type [-Werror=incompatible-pointer-types] 656 | if (!inode_owner_or_capable(mnt_userns, inode)) | ^~~~~~~~~~ | | | struct user_namespace * In file included from include/linux/huge_mm.h:8, from include/linux/mm.h:703, 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/ntfs3/xattr.c:8: include/linux/fs.h:1718:56: note: expected 'const struct inode *' but argument is of type 'struct user_namespace *' 1718 | extern bool inode_owner_or_capable(const struct inode *inode); | ~~~~~~~~~~~~~~~~~~~~^~~~~ >> fs/ntfs3/xattr.c:656:7: error: too many arguments to function 'inode_owner_or_capable' 656 | if (!inode_owner_or_capable(mnt_userns, inode)) | ^~~~~~~~~~~~~~~~~~~~~~ In file included from include/linux/huge_mm.h:8, from include/linux/mm.h:703, 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/ntfs3/xattr.c:8: include/linux/fs.h:1718:13: note: declared here 1718 | extern bool inode_owner_or_capable(const struct inode *inode); | ^~~~~~~~~~~~~~~~~~~~~~ fs/ntfs3/xattr.c: In function 'ntfs_acl_chmod': fs/ntfs3/xattr.c:755:25: error: passing argument 1 of 'posix_acl_chmod' from incompatible pointer type [-Werror=incompatible-pointer-types] 755 | return posix_acl_chmod(mnt_userns, inode, inode->i_mode); | ^~~~~~~~~~ | | | struct user_namespace * In file included from fs/ntfs3/xattr.c:12: include/linux/posix_acl.h:75:28: note: expected 'struct inode *' but argument is of type 'struct user_namespace *' 75 | extern int posix_acl_chmod(struct inode *, umode_t); | ^~~~~~~~~~~~~~ >> fs/ntfs3/xattr.c:755:37: warning: passing argument 2 of 'posix_acl_chmod' makes integer from pointer without a cast [-Wint-conversion] 755 | return posix_acl_chmod(mnt_userns, inode, inode->i_mode); | ^~~~~ | | | struct inode * In file included from fs/ntfs3/xattr.c:12: include/linux/posix_acl.h:75:44: note: expected 'umode_t' {aka 'short unsigned int'} but argument is of type 'struct inode *' 75 | extern int posix_acl_chmod(struct inode *, umode_t); | ^~~~~~~ >> fs/ntfs3/xattr.c:755:9: error: too many arguments to function 'posix_acl_chmod' 755 | return posix_acl_chmod(mnt_userns, inode, inode->i_mode); | ^~~~~~~~~~~~~~~ In file included from fs/ntfs3/xattr.c:12: include/linux/posix_acl.h:75:12: note: declared here 75 | extern int posix_acl_chmod(struct inode *, umode_t); | ^~~~~~~~~~~~~~~ fs/ntfs3/xattr.c: In function 'ntfs_permission': fs/ntfs3/xattr.c:771:28: error: passing argument 1 of 'generic_permission' from incompatible pointer type [-Werror=incompatible-pointer-types] 771 | return generic_permission(mnt_userns, inode, mask); | ^~~~~~~~~~ | | | struct user_namespace * In file included from include/linux/huge_mm.h:8, from include/linux/mm.h:703, 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/ntfs3/xattr.c:8: include/linux/fs.h:2761:31: note: expected 'struct inode *' but argument is of type 'struct user_namespace *' 2761 | extern int generic_permission(struct inode *, int); | ^~~~~~~~~~~~~~ >> fs/ntfs3/xattr.c:771:40: warning: passing argument 2 of 'generic_permission' makes integer from pointer without a cast [-Wint-conversion] 771 | return generic_permission(mnt_userns, inode, mask); | ^~~~~ | | | struct inode * In file included from include/linux/huge_mm.h:8, from include/linux/mm.h:703, 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/ntfs3/xattr.c:8: include/linux/fs.h:2761:47: note: expected 'int' but argument is of type 'struct inode *' 2761 | extern int generic_permission(struct inode *, int); | ^~~ >> fs/ntfs3/xattr.c:771:9: error: too many arguments to function 'generic_permission' 771 | return generic_permission(mnt_userns, inode, mask); | ^~~~~~~~~~~~~~~~~~ In file included from include/linux/huge_mm.h:8, from include/linux/mm.h:703, 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/ntfs3/xattr.c:8: include/linux/fs.h:2761:12: note: declared here 2761 | extern int generic_permission(struct inode *, int); | ^~~~~~~~~~~~~~~~~~ fs/ntfs3/xattr.c: At top level: >> fs/ntfs3/xattr.c:1078:9: error: initialization of '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 *, unsigned int, int)'} from incompatible pointer type '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 *, unsigned int, int)'} [-Werror=incompatible-pointer-types] 1078 | .set = ntfs_setxattr, | ^~~~~~~~~~~~~ fs/ntfs3/xattr.c:1078:9: note: (near initialization for 'ntfs_xattr_handler.set') cc1: some warnings being treated as errors Kconfig warnings: (for reference only) WARNING: unmet direct dependencies detected for SND_ATMEL_SOC_PDC Depends on SOUND && !UML && SND && SND_SOC && SND_ATMEL_SOC && HAS_DMA Selected by - SND_ATMEL_SOC_SSC && SOUND && !UML && SND && SND_SOC && SND_ATMEL_SOC - SND_ATMEL_SOC_SSC_PDC && SOUND && !UML && SND && SND_SOC && SND_ATMEL_SOC && ATMEL_SSC vim +/generic_fillattr +93 fs/ntfs3/file.c 03fd1586cc6284 Konstantin Komarov 2021-02-05 75 03fd1586cc6284 Konstantin Komarov 2021-02-05 76 /* 03fd1586cc6284 Konstantin Komarov 2021-02-05 77 * inode_operations::getattr 03fd1586cc6284 Konstantin Komarov 2021-02-05 78 */ 03fd1586cc6284 Konstantin Komarov 2021-02-05 79 int ntfs_getattr(struct user_namespace *mnt_userns, const struct path *path, 03fd1586cc6284 Konstantin Komarov 2021-02-05 80 struct kstat *stat, u32 request_mask, u32 flags) 03fd1586cc6284 Konstantin Komarov 2021-02-05 81 { 03fd1586cc6284 Konstantin Komarov 2021-02-05 82 struct inode *inode = d_inode(path->dentry); 03fd1586cc6284 Konstantin Komarov 2021-02-05 83 struct ntfs_inode *ni = ntfs_i(inode); 03fd1586cc6284 Konstantin Komarov 2021-02-05 84 03fd1586cc6284 Konstantin Komarov 2021-02-05 85 if (is_compressed(ni)) 03fd1586cc6284 Konstantin Komarov 2021-02-05 86 stat->attributes |= STATX_ATTR_COMPRESSED; 03fd1586cc6284 Konstantin Komarov 2021-02-05 87 03fd1586cc6284 Konstantin Komarov 2021-02-05 88 if (is_encrypted(ni)) 03fd1586cc6284 Konstantin Komarov 2021-02-05 89 stat->attributes |= STATX_ATTR_ENCRYPTED; 03fd1586cc6284 Konstantin Komarov 2021-02-05 90 03fd1586cc6284 Konstantin Komarov 2021-02-05 91 stat->attributes_mask |= STATX_ATTR_COMPRESSED | STATX_ATTR_ENCRYPTED; 03fd1586cc6284 Konstantin Komarov 2021-02-05 92 03fd1586cc6284 Konstantin Komarov 2021-02-05 @93 generic_fillattr(mnt_userns, inode, stat); 03fd1586cc6284 Konstantin Komarov 2021-02-05 94 03fd1586cc6284 Konstantin Komarov 2021-02-05 95 stat->result_mask |= STATX_BTIME; 03fd1586cc6284 Konstantin Komarov 2021-02-05 96 stat->btime = ni->i_crtime; 03fd1586cc6284 Konstantin Komarov 2021-02-05 97 03fd1586cc6284 Konstantin Komarov 2021-02-05 98 return 0; 03fd1586cc6284 Konstantin Komarov 2021-02-05 99 } 03fd1586cc6284 Konstantin Komarov 2021-02-05 100 --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-all@xxxxxxxxxxxx
Attachment:
.config.gz
Description: application/gzip