* [nvdimm:libnvdimm-pending 284/291] include/linux/fs.h:908:29: error: storage class specified for parameter 'I_BDEV'
@ 2020-05-19 10:47 kbuild test robot
0 siblings, 0 replies; only message in thread
From: kbuild test robot @ 2020-05-19 10:47 UTC (permalink / raw)
To: kbuild-all
[-- Attachment #1: Type: text/plain, Size: 37964 bytes --]
tree: https://git.kernel.org/pub/scm/linux/kernel/git/djbw/nvdimm.git libnvdimm-pending
head: 4e2f899e682d1e6c647651bc36bcdba3b3577485
commit: 0b25105d34e381fafc7eb9395007727bbb4661a4 [284/291] x86, powerpc: Rename memcpy_mcsafe() to copy_mc_to_{user,kernel}()
config: powerpc-rhel-kconfig (attached as .config)
compiler: powerpc64le-linux-gcc (GCC) 9.3.0
reproduce:
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
git checkout 0b25105d34e381fafc7eb9395007727bbb4661a4
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=powerpc
If you fix the issue, kindly add following tag as appropriate
Reported-by: kbuild test robot <lkp@intel.com>
All error/warnings (new ones prefixed by >>, old ones prefixed by <<):
| ^
include/linux/fs.h:540:1: error: expected '=', ',', ';', 'asm' or '__attribute__' before '{' token
540 | {
| ^
include/linux/fs.h:545:1: error: expected '=', ',', ';', 'asm' or '__attribute__' before '{' token
545 | {
| ^
include/linux/fs.h:553:1: error: expected '=', ',', ';', 'asm' or '__attribute__' before '{' token
553 | {
| ^
include/linux/fs.h:567:1: error: expected '=', ',', ';', 'asm' or '__attribute__' before '{' token
567 | {
| ^
include/linux/fs.h:572:1: error: expected '=', ',', ';', 'asm' or '__attribute__' before '{' token
572 | {
| ^
include/linux/fs.h:578:1: error: expected '=', ',', ';', 'asm' or '__attribute__' before '{' token
578 | {
| ^
include/linux/fs.h:583:1: error: expected '=', ',', ';', 'asm' or '__attribute__' before '{' token
583 | {
| ^
include/linux/fs.h:589:1: error: expected '=', ',', ';', 'asm' or '__attribute__' before '{' token
589 | {
| ^
include/linux/fs.h:604:1: warning: empty declaration
604 | struct posix_acl;
| ^~~~~~
include/linux/fs.h:610:1: error: expected '=', ',', ';', 'asm' or '__attribute__' before '{' token
610 | {
| ^
include/linux/fs.h:616:1: error: expected '=', ',', ';', 'asm' or '__attribute__' before '{' token
616 | {
| ^
include/linux/fs.h:626:1: warning: empty declaration
626 | struct fsnotify_mark_connector;
| ^~~~~~
include/linux/fs.h:668:20: error: field 'i_atime' has incomplete type
668 | struct timespec64 i_atime;
| ^~~~~~~
include/linux/fs.h:669:20: error: field 'i_mtime' has incomplete type
669 | struct timespec64 i_mtime;
| ^~~~~~~
include/linux/fs.h:670:20: error: field 'i_ctime' has incomplete type
670 | struct timespec64 i_ctime;
| ^~~~~~~
include/linux/fs.h:633:1: warning: empty declaration
633 | struct inode {
| ^~~~~~
include/linux/fs.h:749:1: error: expected '=', ',', ';', 'asm' or '__attribute__' before '{' token
749 | {
| ^
include/linux/fs.h:754:1: error: expected '=', ',', ';', 'asm' or '__attribute__' before '{' token
754 | {
| ^
include/linux/fs.h:765:1: error: expected '=', ',', ';', 'asm' or '__attribute__' before '{' token
765 | {
| ^
include/linux/fs.h:785:1: warning: empty declaration
785 | enum inode_i_mutex_lock_class
| ^~~~
include/linux/fs.h:796:1: error: expected '=', ',', ';', 'asm' or '__attribute__' before '{' token
796 | {
| ^
include/linux/fs.h:801:1: error: expected '=', ',', ';', 'asm' or '__attribute__' before '{' token
801 | {
| ^
include/linux/fs.h:806:1: error: expected '=', ',', ';', 'asm' or '__attribute__' before '{' token
806 | {
| ^
include/linux/fs.h:811:1: error: expected '=', ',', ';', 'asm' or '__attribute__' before '{' token
811 | {
| ^
include/linux/fs.h:816:1: error: expected '=', ',', ';', 'asm' or '__attribute__' before '{' token
816 | {
| ^
include/linux/fs.h:821:1: error: expected '=', ',', ';', 'asm' or '__attribute__' before '{' token
821 | {
| ^
include/linux/fs.h:826:1: error: expected '=', ',', ';', 'asm' or '__attribute__' before '{' token
826 | {
| ^
include/linux/fs.h:831:1: error: expected '=', ',', ';', 'asm' or '__attribute__' before '{' token
831 | {
| ^
include/linux/fs.h:836:1: error: expected '=', ',', ';', 'asm' or '__attribute__' before '{' token
836 | {
| ^
include/linux/fs.h:854:1: error: expected '=', ',', ';', 'asm' or '__attribute__' before '{' token
854 | {
| ^
include/linux/fs.h:882:1: error: expected '=', ',', ';', 'asm' or '__attribute__' before '{' token
882 | {
| ^
include/linux/fs.h:899:1: error: expected '=', ',', ';', 'asm' or '__attribute__' before '{' token
899 | {
| ^
include/linux/fs.h:904:1: error: expected '=', ',', ';', 'asm' or '__attribute__' before '{' token
904 | {
| ^
>> include/linux/fs.h:908:29: error: storage class specified for parameter 'I_BDEV'
908 | extern struct block_device *I_BDEV(struct inode *inode);
| ^~~~~~
>> include/linux/fs.h:913:16: error: field 'pid_type' has incomplete type
913 | enum pid_type pid_type; /* Kind of process group SIGIO should be sent to */
| ^~~~~~~~
include/linux/fs.h:910:1: warning: empty declaration
910 | struct fown_struct {
| ^~~~~~
include/linux/fs.h:921:1: warning: empty declaration
921 | struct file_ra_state {
| ^~~~~~
include/linux/fs.h:936:1: error: expected '=', ',', ';', 'asm' or '__attribute__' before '{' token
936 | {
| ^
include/linux/fs.h:978:2: error: expected specifier-qualifier-list before 'errseq_t'
978 | errseq_t f_wb_err;
| ^~~~~~~~
include/linux/fs.h:941:1: warning: empty declaration
941 | struct file {
| ^~~~~~
include/linux/fs.h:982:1: warning: empty declaration
982 | struct file_handle {
| ^~~~~~
include/linux/fs.h:990:1: error: expected '=', ',', ';', 'asm' or '__attribute__' before '{' token
990 | {
| ^
>> include/linux/fs.h:1031:15: error: storage class specified for parameter 'fl_owner_t'
1031 | typedef void *fl_owner_t;
| ^~~~~~~~~~
include/linux/fs.h:1033:1: warning: empty declaration
1033 | struct file_lock;
| ^~~~~~
include/linux/fs.h:1035:1: warning: empty declaration
1035 | struct file_lock_operations {
| ^~~~~~
>> include/linux/fs.h:1041:2: error: expected specifier-qualifier-list before 'fl_owner_t'
1041 | fl_owner_t (*lm_get_owner)(fl_owner_t);
| ^~~~~~~~~~
include/linux/fs.h:1040:1: warning: empty declaration
1040 | struct lock_manager_operations {
| ^~~~~~
include/linux/fs.h:1050:1: warning: empty declaration
1050 | struct lock_manager {
| ^~~~~~
include/linux/fs.h:1059:1: warning: empty declaration
1059 | struct net;
| ^~~~~~
In file included from include/linux/fs.h:1066,
from include/linux/compat.h:17,
from arch/powerpc/kernel/asm-offsets.c:14:
include/linux/nfs_fs_i.h:5:1: warning: empty declaration
5 | struct nlm_lockowner;
| ^~~~~~
include/linux/nfs_fs_i.h:10:1: warning: empty declaration
10 | struct nfs_lock_info {
| ^~~~~~
include/linux/nfs_fs_i.h:16:1: warning: empty declaration
16 | struct nfs4_lock_state;
| ^~~~~~
include/linux/nfs_fs_i.h:17:1: warning: empty declaration
17 | struct nfs4_lock_info {
| ^~~~~~
In file included from include/linux/compat.h:17,
from arch/powerpc/kernel/asm-offsets.c:14:
include/linux/fs.h:1095:2: error: expected specifier-qualifier-list before 'fl_owner_t'
1095 | fl_owner_t fl_owner;
| ^~~~~~~~~~
include/linux/fs.h:1085:1: warning: empty declaration
1085 | struct file_lock {
| ^~~~~~
include/linux/fs.h:1123:1: warning: empty declaration
1123 | struct file_lock_context {
| ^~~~~~
>> include/linux/fs.h:1137:13: error: storage class specified for parameter 'send_sigio'
1137 | extern void send_sigio(struct fown_struct *fown, int fd, int band);
| ^~~~~~~~~~
>> include/linux/fs.h:1142:12: error: storage class specified for parameter 'fcntl_getlk'
1142 | extern int fcntl_getlk(struct file *, unsigned int, struct flock *);
| ^~~~~~~~~~~
>> include/linux/fs.h:1143:12: error: storage class specified for parameter 'fcntl_setlk'
1143 | extern int fcntl_setlk(unsigned int, struct file *, unsigned int,
| ^~~~~~~~~~~
>> include/linux/fs.h:1152:12: error: storage class specified for parameter 'fcntl_setlease'
1152 | extern int fcntl_setlease(unsigned int fd, struct file *filp, long arg);
| ^~~~~~~~~~~~~~
>> include/linux/fs.h:1153:12: error: storage class specified for parameter 'fcntl_getlease'
1153 | extern int fcntl_getlease(struct file *filp);
| ^~~~~~~~~~~~~~
>> include/linux/fs.h:1158:13: error: storage class specified for parameter 'locks_init_lock'
1158 | extern void locks_init_lock(struct file_lock *);
| ^~~~~~~~~~~~~~~
>> include/linux/fs.h:1159:27: error: storage class specified for parameter 'locks_alloc_lock'
1159 | extern struct file_lock * locks_alloc_lock(void);
| ^~~~~~~~~~~~~~~~
>> include/linux/fs.h:1160:13: error: storage class specified for parameter 'locks_copy_lock'
1160 | extern void locks_copy_lock(struct file_lock *, struct file_lock *);
| ^~~~~~~~~~~~~~~
>> include/linux/fs.h:1161:13: error: storage class specified for parameter 'locks_copy_conflock'
1161 | extern void locks_copy_conflock(struct file_lock *, struct file_lock *);
| ^~~~~~~~~~~~~~~~~~~
>> include/linux/fs.h:1162:47: error: expected declaration specifiers or '...' before 'fl_owner_t'
1162 | extern void locks_remove_posix(struct file *, fl_owner_t);
| ^~~~~~~~~~
>> include/linux/fs.h:1163:13: error: storage class specified for parameter 'locks_remove_file'
1163 | extern void locks_remove_file(struct file *);
| ^~~~~~~~~~~~~~~~~
>> include/linux/fs.h:1164:13: error: storage class specified for parameter 'locks_release_private'
1164 | extern void locks_release_private(struct file_lock *);
| ^~~~~~~~~~~~~~~~~~~~~
>> include/linux/fs.h:1165:13: error: storage class specified for parameter 'posix_test_lock'
1165 | extern void posix_test_lock(struct file *, struct file_lock *);
| ^~~~~~~~~~~~~~~
>> include/linux/fs.h:1166:12: error: storage class specified for parameter 'posix_lock_file'
1166 | extern int posix_lock_file(struct file *, struct file_lock *, struct file_lock *);
| ^~~~~~~~~~~~~~~
>> include/linux/fs.h:1167:12: error: storage class specified for parameter 'locks_delete_block'
1167 | extern int locks_delete_block(struct file_lock *);
| ^~~~~~~~~~~~~~~~~~
>> include/linux/fs.h:1168:12: error: storage class specified for parameter 'vfs_test_lock'
1168 | extern int vfs_test_lock(struct file *, struct file_lock *);
| ^~~~~~~~~~~~~
include/linux/fs.h:1169:12: error: storage class specified for parameter 'vfs_lock_file'
1169 | extern int vfs_lock_file(struct file *, unsigned int, struct file_lock *, struct file_lock *);
| ^~~~~~~~~~~~~
include/linux/fs.h:1170:12: error: storage class specified for parameter 'vfs_cancel_lock'
1170 | extern int vfs_cancel_lock(struct file *filp, struct file_lock *fl);
| ^~~~~~~~~~~~~~~
include/linux/fs.h:1171:12: error: storage class specified for parameter 'locks_lock_inode_wait'
1171 | extern int locks_lock_inode_wait(struct inode *inode, struct file_lock *fl);
| ^~~~~~~~~~~~~~~~~~~~~
include/linux/fs.h:1172:12: error: storage class specified for parameter '__break_lease'
1172 | extern int __break_lease(struct inode *inode, unsigned int flags, unsigned int type);
| ^~~~~~~~~~~~~
include/linux/fs.h:1173:13: error: storage class specified for parameter 'lease_get_mtime'
1173 | extern void lease_get_mtime(struct inode *, struct timespec64 *time);
| ^~~~~~~~~~~~~~~
include/linux/fs.h:1174:12: error: storage class specified for parameter 'generic_setlease'
1174 | extern int generic_setlease(struct file *, long, struct file_lock **, void **priv);
| ^~~~~~~~~~~~~~~~
include/linux/fs.h:1175:12: error: storage class specified for parameter 'vfs_setlease'
1175 | extern int vfs_setlease(struct file *, long, struct file_lock **, void **);
| ^~~~~~~~~~~~
include/linux/fs.h:1176:12: error: storage class specified for parameter 'lease_modify'
1176 | extern int lease_modify(struct file_lock *, int, struct list_head *);
| ^~~~~~~~~~~~
include/linux/fs.h:1178:1: warning: empty declaration
1178 | struct notifier_block;
| ^~~~~~
include/linux/fs.h:1179:12: error: storage class specified for parameter 'lease_register_notifier'
1179 | extern int lease_register_notifier(struct notifier_block *);
| ^~~~~~~~~~~~~~~~~~~~~~~
include/linux/fs.h:1180:13: error: storage class specified for parameter 'lease_unregister_notifier'
1180 | extern void lease_unregister_notifier(struct notifier_block *);
| ^~~~~~~~~~~~~~~~~~~~~~~~~
include/linux/fs.h:1182:1: warning: empty declaration
1182 | struct files_struct;
| ^~~~~~
include/linux/fs.h:1183:13: error: storage class specified for parameter 'show_fd_locks'
1183 | extern void show_fd_locks(struct seq_file *f,
| ^~~~~~~~~~~~~
include/linux/fs.h:1323:1: error: expected '=', ',', ';', 'asm' or '__attribute__' before '{' token
1323 | {
| ^
include/linux/fs.h:1328:1: error: expected '=', ',', ';', 'asm' or '__attribute__' before '{' token
1328 | {
| ^
include/linux/fs.h:1333:1: error: expected '=', ',', ';', 'asm' or '__attribute__' before '{' token
1333 | {
| ^
include/linux/fs.h:1337:1: warning: empty declaration
1337 | struct fasync_struct {
| ^~~~~~
include/linux/fs.h:1349:12: error: storage class specified for parameter 'fasync_helper'
1349 | extern int fasync_helper(int, struct file *, int, struct fasync_struct **);
| ^~~~~~~~~~~~~
include/linux/fs.h:1350:30: error: storage class specified for parameter 'fasync_insert_entry'
1350 | extern struct fasync_struct *fasync_insert_entry(int, struct file *, struct fasync_struct **, struct fasync_struct *);
| ^~~~~~~~~~~~~~~~~~~
include/linux/fs.h:1351:12: error: storage class specified for parameter 'fasync_remove_entry'
1351 | extern int fasync_remove_entry(struct file *, struct fasync_struct **);
| ^~~~~~~~~~~~~~~~~~~
include/linux/fs.h:1352:30: error: storage class specified for parameter 'fasync_alloc'
1352 | extern struct fasync_struct *fasync_alloc(void);
| ^~~~~~~~~~~~
include/linux/fs.h:1353:13: error: storage class specified for parameter 'fasync_free'
1353 | extern void fasync_free(struct fasync_struct *);
| ^~~~~~~~~~~
include/linux/fs.h:1356:13: error: storage class specified for parameter 'kill_fasync'
1356 | extern void kill_fasync(struct fasync_struct **, int, int);
| ^~~~~~~~~~~
include/linux/fs.h:1358:13: error: storage class specified for parameter '__f_setown'
1358 | extern void __f_setown(struct file *filp, struct pid *, enum pid_type, int force);
| ^~~~~~~~~~
include/linux/fs.h:1359:12: error: storage class specified for parameter 'f_setown'
1359 | extern int f_setown(struct file *filp, unsigned long arg, int force);
| ^~~~~~~~
include/linux/fs.h:1360:13: error: storage class specified for parameter 'f_delown'
1360 | extern void f_delown(struct file *filp);
| ^~~~~~~~
include/linux/fs.h:1361:14: error: storage class specified for parameter 'f_getown'
1361 | extern pid_t f_getown(struct file *filp);
| ^~~~~~~~
include/linux/fs.h:1362:12: error: storage class specified for parameter 'send_sigurg'
1362 | extern int send_sigurg(struct fown_struct *fown);
| ^~~~~~~~~~~
include/linux/fs.h:1413:1: warning: empty declaration
1413 | enum {
| ^~~~
include/linux/fs.h:1424:1: warning: empty declaration
1424 | struct sb_writers {
| ^~~~~~
include/linux/fs.h:1488:2: error: expected specifier-qualifier-list before 'uuid_t'
1488 | uuid_t s_uuid; /* UUID */
| ^~~~~~
include/linux/fs.h:1430:1: warning: empty declaration
1430 | struct super_block {
| ^~~~~~
include/linux/fs.h:1565:1: error: expected '=', ',', ';', 'asm' or '__attribute__' before '{' token
1565 | {
vim +/I_BDEV +908 include/linux/fs.h
^1da177e4c3f4152 Linus Torvalds 2005-04-16 875
7762f5a0b709b415 Miklos Szeredi 2006-10-17 876 /*
7762f5a0b709b415 Miklos Szeredi 2006-10-17 877 * NOTE: unlike i_size_read(), i_size_write() does need locking around it
7762f5a0b709b415 Miklos Szeredi 2006-10-17 878 * (normally i_mutex), otherwise on 32bit/SMP an update of i_size_seqcount
7762f5a0b709b415 Miklos Szeredi 2006-10-17 879 * can be lost, resulting in subsequent i_size_read() calls spinning forever.
7762f5a0b709b415 Miklos Szeredi 2006-10-17 880 */
^1da177e4c3f4152 Linus Torvalds 2005-04-16 881 static inline void i_size_write(struct inode *inode, loff_t i_size)
^1da177e4c3f4152 Linus Torvalds 2005-04-16 @882 {
^1da177e4c3f4152 Linus Torvalds 2005-04-16 883 #if BITS_PER_LONG==32 && defined(CONFIG_SMP)
74e3d1e17b2e11d1 Fan Du 2013-04-30 884 preempt_disable();
^1da177e4c3f4152 Linus Torvalds 2005-04-16 885 write_seqcount_begin(&inode->i_size_seqcount);
^1da177e4c3f4152 Linus Torvalds 2005-04-16 886 inode->i_size = i_size;
^1da177e4c3f4152 Linus Torvalds 2005-04-16 887 write_seqcount_end(&inode->i_size_seqcount);
74e3d1e17b2e11d1 Fan Du 2013-04-30 888 preempt_enable();
2496396fcb44404e Thomas Gleixner 2019-10-15 889 #elif BITS_PER_LONG==32 && defined(CONFIG_PREEMPTION)
^1da177e4c3f4152 Linus Torvalds 2005-04-16 890 preempt_disable();
^1da177e4c3f4152 Linus Torvalds 2005-04-16 891 inode->i_size = i_size;
^1da177e4c3f4152 Linus Torvalds 2005-04-16 892 preempt_enable();
^1da177e4c3f4152 Linus Torvalds 2005-04-16 893 #else
^1da177e4c3f4152 Linus Torvalds 2005-04-16 894 inode->i_size = i_size;
^1da177e4c3f4152 Linus Torvalds 2005-04-16 895 #endif
^1da177e4c3f4152 Linus Torvalds 2005-04-16 896 }
^1da177e4c3f4152 Linus Torvalds 2005-04-16 897
48ed214d10ae3c39 Jan Engelhardt 2006-12-06 898 static inline unsigned iminor(const struct inode *inode)
^1da177e4c3f4152 Linus Torvalds 2005-04-16 @899 {
^1da177e4c3f4152 Linus Torvalds 2005-04-16 900 return MINOR(inode->i_rdev);
^1da177e4c3f4152 Linus Torvalds 2005-04-16 901 }
^1da177e4c3f4152 Linus Torvalds 2005-04-16 902
48ed214d10ae3c39 Jan Engelhardt 2006-12-06 903 static inline unsigned imajor(const struct inode *inode)
^1da177e4c3f4152 Linus Torvalds 2005-04-16 904 {
^1da177e4c3f4152 Linus Torvalds 2005-04-16 905 return MAJOR(inode->i_rdev);
^1da177e4c3f4152 Linus Torvalds 2005-04-16 906 }
^1da177e4c3f4152 Linus Torvalds 2005-04-16 907
^1da177e4c3f4152 Linus Torvalds 2005-04-16 @908 extern struct block_device *I_BDEV(struct inode *inode);
^1da177e4c3f4152 Linus Torvalds 2005-04-16 909
^1da177e4c3f4152 Linus Torvalds 2005-04-16 910 struct fown_struct {
^1da177e4c3f4152 Linus Torvalds 2005-04-16 911 rwlock_t lock; /* protects pid, uid, euid fields */
609d7fa9565c7544 Eric W. Biederman 2006-10-02 912 struct pid *pid; /* pid or -pgrp where SIGIO should be sent */
609d7fa9565c7544 Eric W. Biederman 2006-10-02 @913 enum pid_type pid_type; /* Kind of process group SIGIO should be sent to */
92361636e0153bd0 Eric W. Biederman 2012-02-08 914 kuid_t uid, euid; /* uid/euid of process setting the owner */
^1da177e4c3f4152 Linus Torvalds 2005-04-16 915 int signum; /* posix.1b rt signal to be delivered on IO */
^1da177e4c3f4152 Linus Torvalds 2005-04-16 916 };
^1da177e4c3f4152 Linus Torvalds 2005-04-16 917
^1da177e4c3f4152 Linus Torvalds 2005-04-16 918 /*
^1da177e4c3f4152 Linus Torvalds 2005-04-16 919 * Track a single file's readahead state
^1da177e4c3f4152 Linus Torvalds 2005-04-16 920 */
^1da177e4c3f4152 Linus Torvalds 2005-04-16 921 struct file_ra_state {
f9acc8c7b35a100f Fengguang Wu 2007-07-19 922 pgoff_t start; /* where readahead started */
937085aa35cc873d Fengguang Wu 2007-10-16 923 unsigned int size; /* # of readahead pages */
937085aa35cc873d Fengguang Wu 2007-10-16 924 unsigned int async_size; /* do asynchronous readahead when
f9acc8c7b35a100f Fengguang Wu 2007-07-19 925 there are only # of pages ahead */
5ce1110b92b31d07 Fengguang Wu 2007-07-19 926
937085aa35cc873d Fengguang Wu 2007-10-16 927 unsigned int ra_pages; /* Maximum readahead window */
1ebf26a9b338534d Wu Fengguang 2009-06-16 928 unsigned int mmap_miss; /* Cache miss stat for mmap accesses */
f4e6b498d6e06742 Fengguang Wu 2007-10-16 929 loff_t prev_pos; /* Cache last read() position */
^1da177e4c3f4152 Linus Torvalds 2005-04-16 930 };
^1da177e4c3f4152 Linus Torvalds 2005-04-16 931
5ce1110b92b31d07 Fengguang Wu 2007-07-19 932 /*
5ce1110b92b31d07 Fengguang Wu 2007-07-19 933 * Check if @index falls in the readahead windows.
5ce1110b92b31d07 Fengguang Wu 2007-07-19 934 */
5ce1110b92b31d07 Fengguang Wu 2007-07-19 935 static inline int ra_has_index(struct file_ra_state *ra, pgoff_t index)
5ce1110b92b31d07 Fengguang Wu 2007-07-19 936 {
f9acc8c7b35a100f Fengguang Wu 2007-07-19 937 return (index >= ra->start &&
f9acc8c7b35a100f Fengguang Wu 2007-07-19 938 index < ra->start + ra->size);
5ce1110b92b31d07 Fengguang Wu 2007-07-19 939 }
5ce1110b92b31d07 Fengguang Wu 2007-07-19 940
^1da177e4c3f4152 Linus Torvalds 2005-04-16 @941 struct file {
2f51201662b28dbf Eric Dumazet 2005-10-30 942 union {
4f5e65a1cc90bbb1 Oleg Nesterov 2013-07-08 943 struct llist_node fu_llist;
2f51201662b28dbf Eric Dumazet 2005-10-30 944 struct rcu_head fu_rcuhead;
2f51201662b28dbf Eric Dumazet 2005-10-30 945 } f_u;
0f7fc9e4d03987fe Josef "Jeff" Sipek 2006-12-08 946 struct path f_path;
dd37978c50bc8b35 Al Viro 2013-03-01 947 struct inode *f_inode; /* cached value */
99ac48f54a91d021 Arjan van de Ven 2006-03-28 948 const struct file_operations *f_op;
ef3d0fd27e90f67e Andi Kleen 2011-09-15 949
ef3d0fd27e90f67e Andi Kleen 2011-09-15 950 /*
9c225f2655e36a47 Linus Torvalds 2014-03-03 951 * Protects f_ep_links, f_flags.
ef3d0fd27e90f67e Andi Kleen 2011-09-15 952 * Must not be taken from IRQ context.
ef3d0fd27e90f67e Andi Kleen 2011-09-15 953 */
ef3d0fd27e90f67e Andi Kleen 2011-09-15 954 spinlock_t f_lock;
c75b1d9421f80f41 Jens Axboe 2017-06-27 955 enum rw_hint f_write_hint;
516e0cc5646f377a Al Viro 2008-07-26 956 atomic_long_t f_count;
^1da177e4c3f4152 Linus Torvalds 2005-04-16 957 unsigned int f_flags;
aeb5d727062a0238 Al Viro 2008-09-02 958 fmode_t f_mode;
9c225f2655e36a47 Linus Torvalds 2014-03-03 959 struct mutex f_pos_lock;
^1da177e4c3f4152 Linus Torvalds 2005-04-16 960 loff_t f_pos;
^1da177e4c3f4152 Linus Torvalds 2005-04-16 961 struct fown_struct f_owner;
d76b0d9b2d87cfc9 David Howells 2008-11-14 962 const struct cred *f_cred;
^1da177e4c3f4152 Linus Torvalds 2005-04-16 963 struct file_ra_state f_ra;
^1da177e4c3f4152 Linus Torvalds 2005-04-16 964
2b47c3611de05c58 Mathieu Desnoyers 2007-10-16 965 u64 f_version;
50462062a02226a6 Alexey Dobriyan 2006-09-29 966 #ifdef CONFIG_SECURITY
^1da177e4c3f4152 Linus Torvalds 2005-04-16 967 void *f_security;
50462062a02226a6 Alexey Dobriyan 2006-09-29 968 #endif
^1da177e4c3f4152 Linus Torvalds 2005-04-16 969 /* needed for tty driver, and maybe others */
^1da177e4c3f4152 Linus Torvalds 2005-04-16 970 void *private_data;
^1da177e4c3f4152 Linus Torvalds 2005-04-16 971
^1da177e4c3f4152 Linus Torvalds 2005-04-16 972 #ifdef CONFIG_EPOLL
^1da177e4c3f4152 Linus Torvalds 2005-04-16 973 /* Used by fs/eventpoll.c to link all the hooks to this file */
^1da177e4c3f4152 Linus Torvalds 2005-04-16 974 struct list_head f_ep_links;
28d82dc1c4edbc35 Jason Baron 2012-01-12 975 struct list_head f_tfile_llink;
^1da177e4c3f4152 Linus Torvalds 2005-04-16 976 #endif /* #ifdef CONFIG_EPOLL */
^1da177e4c3f4152 Linus Torvalds 2005-04-16 977 struct address_space *f_mapping;
5660e13d2fd6af19 Jeff Layton 2017-07-06 978 errseq_t f_wb_err;
3859a271a003aba0 Kees Cook 2016-10-28 979 } __randomize_layout
3859a271a003aba0 Kees Cook 2016-10-28 980 __attribute__((aligned(4))); /* lest something weird decides that 2 is OK */
^1da177e4c3f4152 Linus Torvalds 2005-04-16 981
990d6c2d7aee921e Aneesh Kumar K.V 2011-01-29 982 struct file_handle {
990d6c2d7aee921e Aneesh Kumar K.V 2011-01-29 983 __u32 handle_bytes;
990d6c2d7aee921e Aneesh Kumar K.V 2011-01-29 984 int handle_type;
990d6c2d7aee921e Aneesh Kumar K.V 2011-01-29 985 /* file identifier */
990d6c2d7aee921e Aneesh Kumar K.V 2011-01-29 986 unsigned char f_handle[0];
990d6c2d7aee921e Aneesh Kumar K.V 2011-01-29 987 };
990d6c2d7aee921e Aneesh Kumar K.V 2011-01-29 988
cb0942b81249798e Al Viro 2012-08-27 989 static inline struct file *get_file(struct file *f)
cb0942b81249798e Al Viro 2012-08-27 990 {
cb0942b81249798e Al Viro 2012-08-27 991 atomic_long_inc(&f->f_count);
cb0942b81249798e Al Viro 2012-08-27 992 return f;
cb0942b81249798e Al Viro 2012-08-27 993 }
091141a42e15fe47 Jens Axboe 2018-11-21 994 #define get_file_rcu_many(x, cnt) \
091141a42e15fe47 Jens Axboe 2018-11-21 995 atomic_long_add_unless(&(x)->f_count, (cnt), 0)
091141a42e15fe47 Jens Axboe 2018-11-21 996 #define get_file_rcu(x) get_file_rcu_many((x), 1)
516e0cc5646f377a Al Viro 2008-07-26 997 #define file_count(x) atomic_long_read(&(x)->f_count)
^1da177e4c3f4152 Linus Torvalds 2005-04-16 998
^1da177e4c3f4152 Linus Torvalds 2005-04-16 999 #define MAX_NON_LFS ((1UL<<31) - 1)
^1da177e4c3f4152 Linus Torvalds 2005-04-16 1000
^1da177e4c3f4152 Linus Torvalds 2005-04-16 1001 /* Page cache limit. The filesystems should put that into their s_maxbytes
^1da177e4c3f4152 Linus Torvalds 2005-04-16 1002 limits, otherwise bad things can happen in VM. */
^1da177e4c3f4152 Linus Torvalds 2005-04-16 1003 #if BITS_PER_LONG==32
0cc3b0ec23ce4c69 Linus Torvalds 2017-08-27 1004 #define MAX_LFS_FILESIZE ((loff_t)ULONG_MAX << PAGE_SHIFT)
^1da177e4c3f4152 Linus Torvalds 2005-04-16 1005 #elif BITS_PER_LONG==64
0cc3b0ec23ce4c69 Linus Torvalds 2017-08-27 1006 #define MAX_LFS_FILESIZE ((loff_t)LLONG_MAX)
^1da177e4c3f4152 Linus Torvalds 2005-04-16 1007 #endif
^1da177e4c3f4152 Linus Torvalds 2005-04-16 1008
^1da177e4c3f4152 Linus Torvalds 2005-04-16 1009 #define FL_POSIX 1
^1da177e4c3f4152 Linus Torvalds 2005-04-16 1010 #define FL_FLOCK 2
617588d5186c887e J. Bruce Fields 2011-07-01 1011 #define FL_DELEG 4 /* NFSv4 delegation */
^1da177e4c3f4152 Linus Torvalds 2005-04-16 1012 #define FL_ACCESS 8 /* not trying to lock, just looking */
f475ae957db66650 Trond Myklebust 2006-06-29 1013 #define FL_EXISTS 16 /* when unlocking, test for existence */
^1da177e4c3f4152 Linus Torvalds 2005-04-16 1014 #define FL_LEASE 32 /* lease held on this file */
75e1fcc0b18df0a6 Miklos Szeredi 2006-06-23 1015 #define FL_CLOSE 64 /* unlock on close */
^1da177e4c3f4152 Linus Torvalds 2005-04-16 1016 #define FL_SLEEP 128 /* A blocking lock */
778fc546f749c588 J. Bruce Fields 2011-07-26 1017 #define FL_DOWNGRADE_PENDING 256 /* Lease is being downgraded */
778fc546f749c588 J. Bruce Fields 2011-07-26 1018 #define FL_UNLOCK_PENDING 512 /* Lease is being broken */
cff2fce58b2b0f59 Jeff Layton 2014-04-22 1019 #define FL_OFDLCK 1024 /* lock is "owned" by struct file */
11afe9f76e121e96 Christoph Hellwig 2015-01-21 1020 #define FL_LAYOUT 2048 /* outstanding pNFS layout */
^1da177e4c3f4152 Linus Torvalds 2005-04-16 1021
50f2112cf7a3e62a Benjamin Coddington 2017-04-11 1022 #define FL_CLOSE_POSIX (FL_POSIX | FL_CLOSE)
50f2112cf7a3e62a Benjamin Coddington 2017-04-11 1023
bde74e4bc64415b1 Miklos Szeredi 2008-07-25 1024 /*
bde74e4bc64415b1 Miklos Szeredi 2008-07-25 1025 * Special return value from posix_lock_file() and vfs_lock_file() for
bde74e4bc64415b1 Miklos Szeredi 2008-07-25 1026 * asynchronous locking.
bde74e4bc64415b1 Miklos Szeredi 2008-07-25 1027 */
bde74e4bc64415b1 Miklos Szeredi 2008-07-25 1028 #define FILE_LOCK_DEFERRED 1
bde74e4bc64415b1 Miklos Szeredi 2008-07-25 1029
7ca76311fe6c397e Jeff Layton 2014-09-01 1030 /* legacy typedef, should eventually be removed */
17fa388ddceb89e9 Christoph Hellwig 2014-07-13 @1031 typedef void *fl_owner_t;
^1da177e4c3f4152 Linus Torvalds 2005-04-16 1032
a7231a97467d5a0c Jeff Layton 2015-01-16 1033 struct file_lock;
a7231a97467d5a0c Jeff Layton 2015-01-16 1034
^1da177e4c3f4152 Linus Torvalds 2005-04-16 1035 struct file_lock_operations {
^1da177e4c3f4152 Linus Torvalds 2005-04-16 1036 void (*fl_copy_lock)(struct file_lock *, struct file_lock *);
^1da177e4c3f4152 Linus Torvalds 2005-04-16 1037 void (*fl_release_private)(struct file_lock *);
^1da177e4c3f4152 Linus Torvalds 2005-04-16 1038 };
^1da177e4c3f4152 Linus Torvalds 2005-04-16 1039
^1da177e4c3f4152 Linus Torvalds 2005-04-16 1040 struct lock_manager_operations {
cae80b305e1c3944 Jeff Layton 2015-04-03 @1041 fl_owner_t (*lm_get_owner)(fl_owner_t);
cae80b305e1c3944 Jeff Layton 2015-04-03 1042 void (*lm_put_owner)(fl_owner_t);
8fb47a4fbf858a16 J. Bruce Fields 2011-07-20 1043 void (*lm_notify)(struct file_lock *); /* unblock callback */
d0449b90f80f263e Joe Perches 2014-08-22 1044 int (*lm_grant)(struct file_lock *, int);
4d01b7f5e7576858 Jeff Layton 2014-09-01 1045 bool (*lm_break)(struct file_lock *);
7448cc37b1a6b620 Jeff Layton 2015-01-16 1046 int (*lm_change)(struct file_lock *, int, struct list_head *);
1c7dd2ff430fa14b Jeff Layton 2014-08-22 1047 void (*lm_setup)(struct file_lock *, void **);
^1da177e4c3f4152 Linus Torvalds 2005-04-16 1048 };
^1da177e4c3f4152 Linus Torvalds 2005-04-16 1049
af558e33bedab672 J. Bruce Fields 2007-09-06 1050 struct lock_manager {
af558e33bedab672 J. Bruce Fields 2007-09-06 1051 struct list_head list;
c87fb4a378f93f11 J. Bruce Fields 2015-08-06 1052 /*
c87fb4a378f93f11 J. Bruce Fields 2015-08-06 1053 * NFSv4 and up also want opens blocked during the grace period;
c87fb4a378f93f11 J. Bruce Fields 2015-08-06 1054 * NLM doesn't care:
c87fb4a378f93f11 J. Bruce Fields 2015-08-06 1055 */
c87fb4a378f93f11 J. Bruce Fields 2015-08-06 1056 bool block_opens;
af558e33bedab672 J. Bruce Fields 2007-09-06 1057 };
af558e33bedab672 J. Bruce Fields 2007-09-06 1058
5ccb0066f2d56154 Stanislav Kinsbursky 2012-07-25 1059 struct net;
5ccb0066f2d56154 Stanislav Kinsbursky 2012-07-25 1060 void locks_start_grace(struct net *, struct lock_manager *);
af558e33bedab672 J. Bruce Fields 2007-09-06 1061 void locks_end_grace(struct lock_manager *);
003278e431bffa40 Corentin Labbe 2017-09-26 1062 bool locks_in_grace(struct net *);
003278e431bffa40 Corentin Labbe 2017-09-26 1063 bool opens_in_grace(struct net *);
af558e33bedab672 J. Bruce Fields 2007-09-06 1064
^1da177e4c3f4152 Linus Torvalds 2005-04-16 1065 /* that will die - we need it for nfs_lock_info */
^1da177e4c3f4152 Linus Torvalds 2005-04-16 1066 #include <linux/nfs_fs_i.h>
^1da177e4c3f4152 Linus Torvalds 2005-04-16 1067
1cb360125966cb6c Jeff Layton 2013-06-21 1068 /*
1cb360125966cb6c Jeff Layton 2013-06-21 1069 * struct file_lock represents a generic "file lock". It's used to represent
1cb360125966cb6c Jeff Layton 2013-06-21 1070 * POSIX byte range locks, BSD (flock) locks, and leases. It's important to
1cb360125966cb6c Jeff Layton 2013-06-21 1071 * note that the same struct is used to represent both a request for a lock and
1cb360125966cb6c Jeff Layton 2013-06-21 1072 * the lock itself, but the same object is never used for both.
1cb360125966cb6c Jeff Layton 2013-06-21 1073 *
1cb360125966cb6c Jeff Layton 2013-06-21 1074 * FIXME: should we create a separate "struct lock_request" to help distinguish
1cb360125966cb6c Jeff Layton 2013-06-21 1075 * these two uses?
1cb360125966cb6c Jeff Layton 2013-06-21 1076 *
8116bf4cb62d337c Jeff Layton 2015-01-21 1077 * The varous i_flctx lists are ordered by:
1cb360125966cb6c Jeff Layton 2013-06-21 1078 *
8116bf4cb62d337c Jeff Layton 2015-01-21 1079 * 1) lock owner
8116bf4cb62d337c Jeff Layton 2015-01-21 1080 * 2) lock range start
8116bf4cb62d337c Jeff Layton 2015-01-21 1081 * 3) lock range end
1cb360125966cb6c Jeff Layton 2013-06-21 1082 *
1cb360125966cb6c Jeff Layton 2013-06-21 1083 * Obviously, the last two criteria only matter for POSIX locks.
1cb360125966cb6c Jeff Layton 2013-06-21 1084 */
^1da177e4c3f4152 Linus Torvalds 2005-04-16 @1085 struct file_lock {
ada5c1da8660ecae NeilBrown 2018-11-30 1086 struct file_lock *fl_blocker; /* The lock, that is blocking us */
6dee60f69d48fcef Jeff Layton 2015-01-16 1087 struct list_head fl_list; /* link into file_lock_context */
139ca04ee572fea6 Jeff Layton 2013-06-21 1088 struct hlist_node fl_link; /* node in global lists */
ada5c1da8660ecae NeilBrown 2018-11-30 1089 struct list_head fl_blocked_requests; /* list of requests with
ada5c1da8660ecae NeilBrown 2018-11-30 1090 * ->fl_blocker pointing here
ada5c1da8660ecae NeilBrown 2018-11-30 1091 */
ada5c1da8660ecae NeilBrown 2018-11-30 1092 struct list_head fl_blocked_member; /* node in
ada5c1da8660ecae NeilBrown 2018-11-30 1093 * ->fl_blocker->fl_blocked_requests
ada5c1da8660ecae NeilBrown 2018-11-30 1094 */
^1da177e4c3f4152 Linus Torvalds 2005-04-16 @1095 fl_owner_t fl_owner;
710b7216964d6455 J. Bruce Fields 2011-07-26 1096 unsigned int fl_flags;
afc1246f917c664b Richard Kennedy 2008-07-11 1097 unsigned char fl_type;
^1da177e4c3f4152 Linus Torvalds 2005-04-16 1098 unsigned int fl_pid;
7012b02a2b2c42bb Jeff Layton 2013-06-21 1099 int fl_link_cpu; /* what cpu's list is this on? */
^1da177e4c3f4152 Linus Torvalds 2005-04-16 1100 wait_queue_head_t fl_wait;
^1da177e4c3f4152 Linus Torvalds 2005-04-16 1101 struct file *fl_file;
^1da177e4c3f4152 Linus Torvalds 2005-04-16 1102 loff_t fl_start;
^1da177e4c3f4152 Linus Torvalds 2005-04-16 1103 loff_t fl_end;
^1da177e4c3f4152 Linus Torvalds 2005-04-16 1104
^1da177e4c3f4152 Linus Torvalds 2005-04-16 1105 struct fasync_struct * fl_fasync; /* for lease break notifications */
778fc546f749c588 J. Bruce Fields 2011-07-26 1106 /* for lease breaks: */
778fc546f749c588 J. Bruce Fields 2011-07-26 1107 unsigned long fl_break_time;
778fc546f749c588 J. Bruce Fields 2011-07-26 1108 unsigned long fl_downgrade_time;
^1da177e4c3f4152 Linus Torvalds 2005-04-16 1109
6aed62853c72e29f Alexey Dobriyan 2009-09-21 1110 const struct file_lock_operations *fl_ops; /* Callbacks for filesystems */
7b021967c5e14639 Alexey Dobriyan 2009-09-21 1111 const struct lock_manager_operations *fl_lmops; /* Callbacks for lockmanagers */
^1da177e4c3f4152 Linus Torvalds 2005-04-16 1112 union {
^1da177e4c3f4152 Linus Torvalds 2005-04-16 1113 struct nfs_lock_info nfs_fl;
8d0a8a9d0ec79008 Trond Myklebust 2005-06-22 1114 struct nfs4_lock_info nfs4_fl;
e8d6c554126b8302 David Howells 2007-07-15 1115 struct {
e8d6c554126b8302 David Howells 2007-07-15 1116 struct list_head link; /* link in AFS vnode's pending_locks list */
e8d6c554126b8302 David Howells 2007-07-15 1117 int state; /* state of grant or error if -ve */
d46966013bb4f1fb David Howells 2019-04-25 1118 unsigned int debug_id;
e8d6c554126b8302 David Howells 2007-07-15 1119 } afs;
^1da177e4c3f4152 Linus Torvalds 2005-04-16 1120 } fl_u;
3859a271a003aba0 Kees Cook 2016-10-28 1121 } __randomize_layout;
^1da177e4c3f4152 Linus Torvalds 2005-04-16 1122
:::::: The code at line 908 was first introduced by commit
:::::: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 Linux-2.6.12-rc2
:::::: TO: Linus Torvalds <torvalds@ppc970.osdl.org>
:::::: CC: Linus Torvalds <torvalds@ppc970.osdl.org>
---
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: 15574 bytes --]
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2020-05-19 10:47 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-05-19 10:47 [nvdimm:libnvdimm-pending 284/291] include/linux/fs.h:908:29: error: storage class specified for parameter 'I_BDEV' kbuild 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.