[tip:tmp.tmp2 351/364] include/linux/fs.h:814:9: warning: implicit declaration of function 'read_seqcount_begin'

From: kernel test robot
Date: Sun Jun 13 2021 - 17:03:06 EST


tree: https://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git tmp.tmp2
head: adcceb5eb7aee38e4a9c15bdf599655f0e1b1324
commit: 6c13131b6a385211160e6bd8a211e5ed72e780a8 [351/364] sched/headers, locking/seqlocks: Optimize <linux/seqlock.h>
config: i386-defconfig (attached as .config)
compiler: gcc-9 (Debian 9.3.0-22) 9.3.0
reproduce (this is a W=1 build):
# https://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git/commit/?id=6c13131b6a385211160e6bd8a211e5ed72e780a8
git remote add tip https://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git
git fetch --no-tags tip tmp.tmp2
git checkout 6c13131b6a385211160e6bd8a211e5ed72e780a8
# save the attached .config to linux build tree
make W=1 ARCH=i386

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@xxxxxxxxx>

All warnings (new ones prefixed by >>):

In file included from include/linux/xarray.h:16,
from include/linux/fs.h:12,
from include/linux/proc_fs.h:10,
from include/linux/efi.h:19,
from drivers/firmware/efi/libstub/efi-stub-helper.c:13:
include/linux/rcuwait.h: In function 'rcuwait_active':
include/linux/rcupdate.h:364:9: error: dereferencing pointer to incomplete type 'struct task_struct'
364 | typeof(*p) *_________p1 = (typeof(*p) *__force)READ_ONCE(p); \
| ^
include/linux/rcupdate.h:474:31: note: in expansion of macro '__rcu_access_pointer'
474 | #define rcu_access_pointer(p) __rcu_access_pointer((p), __rcu)
| ^~~~~~~~~~~~~~~~~~~~
include/linux/rcuwait.h:33:11: note: in expansion of macro 'rcu_access_pointer'
33 | return !!rcu_access_pointer(w->task);
| ^~~~~~~~~~~~~~~~~~
In file included from include/linux/proc_fs.h:10,
from include/linux/efi.h:19,
from drivers/firmware/efi/libstub/efi-stub-helper.c:13:
include/linux/fs.h: In function 'i_size_read':
>> include/linux/fs.h:814:9: warning: implicit declaration of function 'read_seqcount_begin' [-Wimplicit-function-declaration]
814 | seq = read_seqcount_begin(&inode->i_size_seqcount);
| ^~~~~~~~~~~~~~~~~~~
>> include/linux/fs.h:816:11: warning: implicit declaration of function 'read_seqcount_retry' [-Wimplicit-function-declaration]
816 | } while (read_seqcount_retry(&inode->i_size_seqcount, seq));
| ^~~~~~~~~~~~~~~~~~~
include/linux/fs.h: In function 'i_size_write':
>> include/linux/fs.h:839:2: warning: implicit declaration of function 'write_seqcount_begin' [-Wimplicit-function-declaration]
839 | write_seqcount_begin(&inode->i_size_seqcount);
| ^~~~~~~~~~~~~~~~~~~~
>> include/linux/fs.h:841:2: warning: implicit declaration of function 'write_seqcount_end' [-Wimplicit-function-declaration]
841 | write_seqcount_end(&inode->i_size_seqcount);
| ^~~~~~~~~~~~~~~~~~
In file included from include/linux/uaccess.h:13,
from include/linux/poll.h:11,
from include/linux/rtc.h:40,
from include/linux/efi.h:20,
from drivers/firmware/efi/libstub/efi-stub-helper.c:13:
drivers/firmware/efi/libstub/efi-stub-helper.c: At top level:
arch/x86/include/asm/uaccess.h:46:20: warning: 'pagefault_disabled' used but never defined
46 | static inline bool pagefault_disabled(void);
| ^~~~~~~~~~~~~~~~~~
--
In file included from include/linux/xarray.h:16,
from include/linux/fs.h:12,
from include/linux/proc_fs.h:10,
from include/linux/efi.h:19,
from drivers/firmware/efi/libstub/gop.c:10:
include/linux/rcuwait.h: In function 'rcuwait_active':
include/linux/rcupdate.h:364:9: error: dereferencing pointer to incomplete type 'struct task_struct'
364 | typeof(*p) *_________p1 = (typeof(*p) *__force)READ_ONCE(p); \
| ^
include/linux/rcupdate.h:474:31: note: in expansion of macro '__rcu_access_pointer'
474 | #define rcu_access_pointer(p) __rcu_access_pointer((p), __rcu)
| ^~~~~~~~~~~~~~~~~~~~
include/linux/rcuwait.h:33:11: note: in expansion of macro 'rcu_access_pointer'
33 | return !!rcu_access_pointer(w->task);
| ^~~~~~~~~~~~~~~~~~
In file included from include/linux/proc_fs.h:10,
from include/linux/efi.h:19,
from drivers/firmware/efi/libstub/gop.c:10:
include/linux/fs.h: In function 'i_size_read':
>> include/linux/fs.h:814:9: warning: implicit declaration of function 'read_seqcount_begin' [-Wimplicit-function-declaration]
814 | seq = read_seqcount_begin(&inode->i_size_seqcount);
| ^~~~~~~~~~~~~~~~~~~
>> include/linux/fs.h:816:11: warning: implicit declaration of function 'read_seqcount_retry' [-Wimplicit-function-declaration]
816 | } while (read_seqcount_retry(&inode->i_size_seqcount, seq));
| ^~~~~~~~~~~~~~~~~~~
include/linux/fs.h: In function 'i_size_write':
>> include/linux/fs.h:839:2: warning: implicit declaration of function 'write_seqcount_begin' [-Wimplicit-function-declaration]
839 | write_seqcount_begin(&inode->i_size_seqcount);
| ^~~~~~~~~~~~~~~~~~~~
>> include/linux/fs.h:841:2: warning: implicit declaration of function 'write_seqcount_end' [-Wimplicit-function-declaration]
841 | write_seqcount_end(&inode->i_size_seqcount);
| ^~~~~~~~~~~~~~~~~~
In file included from include/linux/uaccess.h:13,
from include/linux/poll.h:11,
from include/linux/rtc.h:40,
from include/linux/efi.h:20,
from drivers/firmware/efi/libstub/gop.c:10:
drivers/firmware/efi/libstub/gop.c: At top level:
arch/x86/include/asm/uaccess.h:46:20: warning: 'pagefault_disabled' used but never defined
46 | static inline bool pagefault_disabled(void);
| ^~~~~~~~~~~~~~~~~~
--
In file included from include/linux/xarray.h:16,
from include/linux/fs.h:12,
from include/linux/proc_fs.h:10,
from include/linux/efi.h:19,
from drivers/firmware/efi/libstub/secureboot.c:10:
include/linux/rcuwait.h: In function 'rcuwait_active':
include/linux/rcupdate.h:364:9: error: dereferencing pointer to incomplete type 'struct task_struct'
364 | typeof(*p) *_________p1 = (typeof(*p) *__force)READ_ONCE(p); \
| ^
include/linux/rcupdate.h:474:31: note: in expansion of macro '__rcu_access_pointer'
474 | #define rcu_access_pointer(p) __rcu_access_pointer((p), __rcu)
| ^~~~~~~~~~~~~~~~~~~~
include/linux/rcuwait.h:33:11: note: in expansion of macro 'rcu_access_pointer'
33 | return !!rcu_access_pointer(w->task);
| ^~~~~~~~~~~~~~~~~~
In file included from include/linux/proc_fs.h:10,
from include/linux/efi.h:19,
from drivers/firmware/efi/libstub/secureboot.c:10:
include/linux/fs.h: In function 'i_size_read':
>> include/linux/fs.h:814:9: warning: implicit declaration of function 'read_seqcount_begin' [-Wimplicit-function-declaration]
814 | seq = read_seqcount_begin(&inode->i_size_seqcount);
| ^~~~~~~~~~~~~~~~~~~
>> include/linux/fs.h:816:11: warning: implicit declaration of function 'read_seqcount_retry' [-Wimplicit-function-declaration]
816 | } while (read_seqcount_retry(&inode->i_size_seqcount, seq));
| ^~~~~~~~~~~~~~~~~~~
include/linux/fs.h: In function 'i_size_write':
>> include/linux/fs.h:839:2: warning: implicit declaration of function 'write_seqcount_begin' [-Wimplicit-function-declaration]
839 | write_seqcount_begin(&inode->i_size_seqcount);
| ^~~~~~~~~~~~~~~~~~~~
>> include/linux/fs.h:841:2: warning: implicit declaration of function 'write_seqcount_end' [-Wimplicit-function-declaration]
841 | write_seqcount_end(&inode->i_size_seqcount);
| ^~~~~~~~~~~~~~~~~~
In file included from include/linux/uaccess.h:13,
from include/linux/poll.h:11,
from include/linux/rtc.h:40,
from include/linux/efi.h:20,
from drivers/firmware/efi/libstub/secureboot.c:10:
drivers/firmware/efi/libstub/secureboot.c: At top level:
arch/x86/include/asm/uaccess.h:46:20: warning: 'pagefault_disabled' used but never defined
46 | static inline bool pagefault_disabled(void);
| ^~~~~~~~~~~~~~~~~~
--
In file included from include/linux/xarray.h:16,
from include/linux/fs.h:12,
from include/linux/proc_fs.h:10,
from include/linux/efi.h:19,
from drivers/firmware/efi/libstub/tpm.c:10:
include/linux/rcuwait.h: In function 'rcuwait_active':
include/linux/rcupdate.h:364:9: error: dereferencing pointer to incomplete type 'struct task_struct'
364 | typeof(*p) *_________p1 = (typeof(*p) *__force)READ_ONCE(p); \
| ^
include/linux/rcupdate.h:474:31: note: in expansion of macro '__rcu_access_pointer'
474 | #define rcu_access_pointer(p) __rcu_access_pointer((p), __rcu)
| ^~~~~~~~~~~~~~~~~~~~
include/linux/rcuwait.h:33:11: note: in expansion of macro 'rcu_access_pointer'
33 | return !!rcu_access_pointer(w->task);
| ^~~~~~~~~~~~~~~~~~
In file included from include/linux/proc_fs.h:10,
from include/linux/efi.h:19,
from drivers/firmware/efi/libstub/tpm.c:10:
include/linux/fs.h: In function 'i_size_read':
>> include/linux/fs.h:814:9: warning: implicit declaration of function 'read_seqcount_begin' [-Wimplicit-function-declaration]
814 | seq = read_seqcount_begin(&inode->i_size_seqcount);
| ^~~~~~~~~~~~~~~~~~~
>> include/linux/fs.h:816:11: warning: implicit declaration of function 'read_seqcount_retry' [-Wimplicit-function-declaration]
816 | } while (read_seqcount_retry(&inode->i_size_seqcount, seq));
| ^~~~~~~~~~~~~~~~~~~
include/linux/fs.h: In function 'i_size_write':
>> include/linux/fs.h:839:2: warning: implicit declaration of function 'write_seqcount_begin' [-Wimplicit-function-declaration]
839 | write_seqcount_begin(&inode->i_size_seqcount);
| ^~~~~~~~~~~~~~~~~~~~
>> include/linux/fs.h:841:2: warning: implicit declaration of function 'write_seqcount_end' [-Wimplicit-function-declaration]
841 | write_seqcount_end(&inode->i_size_seqcount);
| ^~~~~~~~~~~~~~~~~~
In file included from include/linux/uaccess.h:13,
from include/linux/poll.h:11,
from include/linux/rtc.h:40,
from include/linux/efi.h:20,
from drivers/firmware/efi/libstub/tpm.c:10:
drivers/firmware/efi/libstub/tpm.c: At top level:
arch/x86/include/asm/uaccess.h:46:20: warning: 'pagefault_disabled' used but never defined
46 | static inline bool pagefault_disabled(void);
| ^~~~~~~~~~~~~~~~~~
--
In file included from include/linux/xarray.h:16,
from include/linux/fs.h:12,
from include/linux/proc_fs.h:10,
from include/linux/efi.h:19,
from drivers/firmware/efi/libstub/file.c:10:
include/linux/rcuwait.h: In function 'rcuwait_active':
include/linux/rcupdate.h:364:9: error: dereferencing pointer to incomplete type 'struct task_struct'
364 | typeof(*p) *_________p1 = (typeof(*p) *__force)READ_ONCE(p); \
| ^
include/linux/rcupdate.h:474:31: note: in expansion of macro '__rcu_access_pointer'
474 | #define rcu_access_pointer(p) __rcu_access_pointer((p), __rcu)
| ^~~~~~~~~~~~~~~~~~~~
include/linux/rcuwait.h:33:11: note: in expansion of macro 'rcu_access_pointer'
33 | return !!rcu_access_pointer(w->task);
| ^~~~~~~~~~~~~~~~~~
In file included from include/linux/proc_fs.h:10,
from include/linux/efi.h:19,
from drivers/firmware/efi/libstub/file.c:10:
include/linux/fs.h: In function 'i_size_read':
>> include/linux/fs.h:814:9: warning: implicit declaration of function 'read_seqcount_begin' [-Wimplicit-function-declaration]
814 | seq = read_seqcount_begin(&inode->i_size_seqcount);
| ^~~~~~~~~~~~~~~~~~~
>> include/linux/fs.h:816:11: warning: implicit declaration of function 'read_seqcount_retry' [-Wimplicit-function-declaration]
816 | } while (read_seqcount_retry(&inode->i_size_seqcount, seq));
| ^~~~~~~~~~~~~~~~~~~
include/linux/fs.h: In function 'i_size_write':
>> include/linux/fs.h:839:2: warning: implicit declaration of function 'write_seqcount_begin' [-Wimplicit-function-declaration]
839 | write_seqcount_begin(&inode->i_size_seqcount);
| ^~~~~~~~~~~~~~~~~~~~
>> include/linux/fs.h:841:2: warning: implicit declaration of function 'write_seqcount_end' [-Wimplicit-function-declaration]
841 | write_seqcount_end(&inode->i_size_seqcount);
| ^~~~~~~~~~~~~~~~~~
In file included from include/linux/uaccess.h:13,
from include/linux/poll.h:11,
from include/linux/rtc.h:40,
from include/linux/efi.h:20,
from drivers/firmware/efi/libstub/file.c:10:
drivers/firmware/efi/libstub/file.c: At top level:
arch/x86/include/asm/uaccess.h:46:20: warning: 'pagefault_disabled' used but never defined
46 | static inline bool pagefault_disabled(void);
| ^~~~~~~~~~~~~~~~~~
--
In file included from include/linux/xarray.h:16,
from include/linux/fs.h:12,
from include/linux/proc_fs.h:10,
from include/linux/efi.h:19,
from drivers/firmware/efi/libstub/mem.c:3:
include/linux/rcuwait.h: In function 'rcuwait_active':
include/linux/rcupdate.h:364:9: error: dereferencing pointer to incomplete type 'struct task_struct'
364 | typeof(*p) *_________p1 = (typeof(*p) *__force)READ_ONCE(p); \
| ^
include/linux/rcupdate.h:474:31: note: in expansion of macro '__rcu_access_pointer'
474 | #define rcu_access_pointer(p) __rcu_access_pointer((p), __rcu)
| ^~~~~~~~~~~~~~~~~~~~
include/linux/rcuwait.h:33:11: note: in expansion of macro 'rcu_access_pointer'
33 | return !!rcu_access_pointer(w->task);
| ^~~~~~~~~~~~~~~~~~
In file included from include/linux/proc_fs.h:10,
from include/linux/efi.h:19,
from drivers/firmware/efi/libstub/mem.c:3:
include/linux/fs.h: In function 'i_size_read':
>> include/linux/fs.h:814:9: warning: implicit declaration of function 'read_seqcount_begin' [-Wimplicit-function-declaration]
814 | seq = read_seqcount_begin(&inode->i_size_seqcount);
| ^~~~~~~~~~~~~~~~~~~
>> include/linux/fs.h:816:11: warning: implicit declaration of function 'read_seqcount_retry' [-Wimplicit-function-declaration]
816 | } while (read_seqcount_retry(&inode->i_size_seqcount, seq));
| ^~~~~~~~~~~~~~~~~~~
include/linux/fs.h: In function 'i_size_write':
>> include/linux/fs.h:839:2: warning: implicit declaration of function 'write_seqcount_begin' [-Wimplicit-function-declaration]
839 | write_seqcount_begin(&inode->i_size_seqcount);
| ^~~~~~~~~~~~~~~~~~~~
>> include/linux/fs.h:841:2: warning: implicit declaration of function 'write_seqcount_end' [-Wimplicit-function-declaration]
841 | write_seqcount_end(&inode->i_size_seqcount);
| ^~~~~~~~~~~~~~~~~~
In file included from include/linux/uaccess.h:13,
from include/linux/poll.h:11,
from include/linux/rtc.h:40,
from include/linux/efi.h:20,
from drivers/firmware/efi/libstub/mem.c:3:
drivers/firmware/efi/libstub/mem.c: At top level:
arch/x86/include/asm/uaccess.h:46:20: warning: 'pagefault_disabled' used but never defined
46 | static inline bool pagefault_disabled(void);
| ^~~~~~~~~~~~~~~~~~
--
In file included from include/linux/xarray.h:16,
from include/linux/fs.h:12,
from include/linux/proc_fs.h:10,
from include/linux/efi.h:19,
from drivers/firmware/efi/libstub/randomalloc.c:6:
include/linux/rcuwait.h: In function 'rcuwait_active':
include/linux/rcupdate.h:364:9: error: dereferencing pointer to incomplete type 'struct task_struct'
364 | typeof(*p) *_________p1 = (typeof(*p) *__force)READ_ONCE(p); \
| ^
include/linux/rcupdate.h:474:31: note: in expansion of macro '__rcu_access_pointer'
474 | #define rcu_access_pointer(p) __rcu_access_pointer((p), __rcu)
| ^~~~~~~~~~~~~~~~~~~~
include/linux/rcuwait.h:33:11: note: in expansion of macro 'rcu_access_pointer'
33 | return !!rcu_access_pointer(w->task);
| ^~~~~~~~~~~~~~~~~~
In file included from include/linux/proc_fs.h:10,
from include/linux/efi.h:19,
from drivers/firmware/efi/libstub/randomalloc.c:6:
include/linux/fs.h: In function 'i_size_read':
>> include/linux/fs.h:814:9: warning: implicit declaration of function 'read_seqcount_begin' [-Wimplicit-function-declaration]
814 | seq = read_seqcount_begin(&inode->i_size_seqcount);
| ^~~~~~~~~~~~~~~~~~~
>> include/linux/fs.h:816:11: warning: implicit declaration of function 'read_seqcount_retry' [-Wimplicit-function-declaration]
816 | } while (read_seqcount_retry(&inode->i_size_seqcount, seq));
| ^~~~~~~~~~~~~~~~~~~
include/linux/fs.h: In function 'i_size_write':
>> include/linux/fs.h:839:2: warning: implicit declaration of function 'write_seqcount_begin' [-Wimplicit-function-declaration]
839 | write_seqcount_begin(&inode->i_size_seqcount);
| ^~~~~~~~~~~~~~~~~~~~
>> include/linux/fs.h:841:2: warning: implicit declaration of function 'write_seqcount_end' [-Wimplicit-function-declaration]
841 | write_seqcount_end(&inode->i_size_seqcount);
| ^~~~~~~~~~~~~~~~~~
In file included from include/linux/uaccess.h:13,
from include/linux/poll.h:11,
from include/linux/rtc.h:40,
from include/linux/efi.h:20,
from drivers/firmware/efi/libstub/randomalloc.c:6:
drivers/firmware/efi/libstub/randomalloc.c: At top level:
arch/x86/include/asm/uaccess.h:46:20: warning: 'pagefault_disabled' used but never defined
46 | static inline bool pagefault_disabled(void);
| ^~~~~~~~~~~~~~~~~~
--
In file included from include/linux/xarray.h:16,
from include/linux/fs.h:12,
from include/linux/proc_fs.h:10,
from include/linux/efi.h:19,
from drivers/firmware/efi/libstub/pci.c:9:
include/linux/rcuwait.h: In function 'rcuwait_active':
include/linux/rcupdate.h:364:9: error: dereferencing pointer to incomplete type 'struct task_struct'
364 | typeof(*p) *_________p1 = (typeof(*p) *__force)READ_ONCE(p); \
| ^
include/linux/rcupdate.h:474:31: note: in expansion of macro '__rcu_access_pointer'
474 | #define rcu_access_pointer(p) __rcu_access_pointer((p), __rcu)
| ^~~~~~~~~~~~~~~~~~~~
include/linux/rcuwait.h:33:11: note: in expansion of macro 'rcu_access_pointer'
33 | return !!rcu_access_pointer(w->task);
| ^~~~~~~~~~~~~~~~~~
In file included from include/linux/proc_fs.h:10,
from include/linux/efi.h:19,
from drivers/firmware/efi/libstub/pci.c:9:
include/linux/fs.h: In function 'i_size_read':
>> include/linux/fs.h:814:9: warning: implicit declaration of function 'read_seqcount_begin' [-Wimplicit-function-declaration]
814 | seq = read_seqcount_begin(&inode->i_size_seqcount);
| ^~~~~~~~~~~~~~~~~~~
>> include/linux/fs.h:816:11: warning: implicit declaration of function 'read_seqcount_retry' [-Wimplicit-function-declaration]
816 | } while (read_seqcount_retry(&inode->i_size_seqcount, seq));
| ^~~~~~~~~~~~~~~~~~~
include/linux/fs.h: In function 'i_size_write':
>> include/linux/fs.h:839:2: warning: implicit declaration of function 'write_seqcount_begin' [-Wimplicit-function-declaration]
839 | write_seqcount_begin(&inode->i_size_seqcount);
| ^~~~~~~~~~~~~~~~~~~~
>> include/linux/fs.h:841:2: warning: implicit declaration of function 'write_seqcount_end' [-Wimplicit-function-declaration]
841 | write_seqcount_end(&inode->i_size_seqcount);
| ^~~~~~~~~~~~~~~~~~
In file included from include/linux/uaccess.h:13,
from include/linux/poll.h:11,
from include/linux/rtc.h:40,
from include/linux/efi.h:20,
from drivers/firmware/efi/libstub/pci.c:9:
drivers/firmware/efi/libstub/pci.c: At top level:
arch/x86/include/asm/uaccess.h:46:20: warning: 'pagefault_disabled' used but never defined
46 | static inline bool pagefault_disabled(void);
| ^~~~~~~~~~~~~~~~~~
..


vim +/read_seqcount_begin +814 include/linux/fs.h

375e289ea85166c J. Bruce Fields 2012-04-18 796
^1da177e4c3f415 Linus Torvalds 2005-04-16 797 /*
^1da177e4c3f415 Linus Torvalds 2005-04-16 798 * NOTE: in a 32bit arch with a preemptable kernel and
^1da177e4c3f415 Linus Torvalds 2005-04-16 799 * an UP compile the i_size_read/write must be atomic
^1da177e4c3f415 Linus Torvalds 2005-04-16 800 * with respect to the local cpu (unlike with preempt disabled),
^1da177e4c3f415 Linus Torvalds 2005-04-16 801 * but they don't need to be atomic with respect to other cpus like in
^1da177e4c3f415 Linus Torvalds 2005-04-16 802 * true SMP (so they need either to either locally disable irq around
^1da177e4c3f415 Linus Torvalds 2005-04-16 803 * the read or for example on x86 they can be still implemented as a
^1da177e4c3f415 Linus Torvalds 2005-04-16 804 * cmpxchg8b without the need of the lock prefix). For SMP compiles
^1da177e4c3f415 Linus Torvalds 2005-04-16 805 * and 64bit archs it makes no difference if preempt is enabled or not.
^1da177e4c3f415 Linus Torvalds 2005-04-16 806 */
48ed214d10ae3c3 Jan Engelhardt 2006-12-06 807 static inline loff_t i_size_read(const struct inode *inode)
^1da177e4c3f415 Linus Torvalds 2005-04-16 808 {
^1da177e4c3f415 Linus Torvalds 2005-04-16 809 #if BITS_PER_LONG==32 && defined(CONFIG_SMP)
^1da177e4c3f415 Linus Torvalds 2005-04-16 810 loff_t i_size;
^1da177e4c3f415 Linus Torvalds 2005-04-16 811 unsigned int seq;
^1da177e4c3f415 Linus Torvalds 2005-04-16 812
^1da177e4c3f415 Linus Torvalds 2005-04-16 813 do {
^1da177e4c3f415 Linus Torvalds 2005-04-16 @814 seq = read_seqcount_begin(&inode->i_size_seqcount);
^1da177e4c3f415 Linus Torvalds 2005-04-16 815 i_size = inode->i_size;
^1da177e4c3f415 Linus Torvalds 2005-04-16 @816 } while (read_seqcount_retry(&inode->i_size_seqcount, seq));
^1da177e4c3f415 Linus Torvalds 2005-04-16 817 return i_size;
2496396fcb44404 Thomas Gleixner 2019-10-15 818 #elif BITS_PER_LONG==32 && defined(CONFIG_PREEMPTION)
^1da177e4c3f415 Linus Torvalds 2005-04-16 819 loff_t i_size;
^1da177e4c3f415 Linus Torvalds 2005-04-16 820
^1da177e4c3f415 Linus Torvalds 2005-04-16 821 preempt_disable();
^1da177e4c3f415 Linus Torvalds 2005-04-16 822 i_size = inode->i_size;
^1da177e4c3f415 Linus Torvalds 2005-04-16 823 preempt_enable();
^1da177e4c3f415 Linus Torvalds 2005-04-16 824 return i_size;
^1da177e4c3f415 Linus Torvalds 2005-04-16 825 #else
^1da177e4c3f415 Linus Torvalds 2005-04-16 826 return inode->i_size;
^1da177e4c3f415 Linus Torvalds 2005-04-16 827 #endif
^1da177e4c3f415 Linus Torvalds 2005-04-16 828 }
^1da177e4c3f415 Linus Torvalds 2005-04-16 829
7762f5a0b709b41 Miklos Szeredi 2006-10-17 830 /*
7762f5a0b709b41 Miklos Szeredi 2006-10-17 831 * NOTE: unlike i_size_read(), i_size_write() does need locking around it
7762f5a0b709b41 Miklos Szeredi 2006-10-17 832 * (normally i_mutex), otherwise on 32bit/SMP an update of i_size_seqcount
7762f5a0b709b41 Miklos Szeredi 2006-10-17 833 * can be lost, resulting in subsequent i_size_read() calls spinning forever.
7762f5a0b709b41 Miklos Szeredi 2006-10-17 834 */
^1da177e4c3f415 Linus Torvalds 2005-04-16 835 static inline void i_size_write(struct inode *inode, loff_t i_size)
^1da177e4c3f415 Linus Torvalds 2005-04-16 836 {
^1da177e4c3f415 Linus Torvalds 2005-04-16 837 #if BITS_PER_LONG==32 && defined(CONFIG_SMP)
74e3d1e17b2e11d Fan Du 2013-04-30 838 preempt_disable();
^1da177e4c3f415 Linus Torvalds 2005-04-16 @839 write_seqcount_begin(&inode->i_size_seqcount);
^1da177e4c3f415 Linus Torvalds 2005-04-16 840 inode->i_size = i_size;
^1da177e4c3f415 Linus Torvalds 2005-04-16 @841 write_seqcount_end(&inode->i_size_seqcount);
74e3d1e17b2e11d Fan Du 2013-04-30 842 preempt_enable();
2496396fcb44404 Thomas Gleixner 2019-10-15 843 #elif BITS_PER_LONG==32 && defined(CONFIG_PREEMPTION)
^1da177e4c3f415 Linus Torvalds 2005-04-16 844 preempt_disable();
^1da177e4c3f415 Linus Torvalds 2005-04-16 845 inode->i_size = i_size;
^1da177e4c3f415 Linus Torvalds 2005-04-16 846 preempt_enable();
^1da177e4c3f415 Linus Torvalds 2005-04-16 847 #else
^1da177e4c3f415 Linus Torvalds 2005-04-16 848 inode->i_size = i_size;
^1da177e4c3f415 Linus Torvalds 2005-04-16 849 #endif
^1da177e4c3f415 Linus Torvalds 2005-04-16 850 }
^1da177e4c3f415 Linus Torvalds 2005-04-16 851

:::::: The code at line 814 was first introduced by commit
:::::: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 Linux-2.6.12-rc2

:::::: TO: Linus Torvalds <torvalds@xxxxxxxxxxxxxxx>
:::::: CC: Linus Torvalds <torvalds@xxxxxxxxxxxxxxx>

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

Attachment: .config.gz
Description: application/gzip