From: kernel test robot <lkp@intel.com>
To: Ingo Molnar <mingo@kernel.org>
Cc: kbuild-all@lists.01.org, linux-kernel@vger.kernel.org, x86@kernel.org
Subject: [tip:tmp.tmp2 351/364] include/linux/fs.h:814:9: warning: implicit declaration of function 'read_seqcount_begin'
Date: Mon, 14 Jun 2021 05:02:03 +0800 [thread overview]
Message-ID: <202106140547.9tXXkx5y-lkp@intel.com> (raw)
[-- Attachment #1: Type: text/plain, Size: 26764 bytes --]
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@intel.com>
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@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@lists.01.org
[-- Attachment #2: .config.gz --]
[-- Type: application/gzip, Size: 29247 bytes --]
reply other threads:[~2021-06-13 21:02 UTC|newest]
Thread overview: [no followups] expand[flat|nested] mbox.gz Atom feed
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=202106140547.9tXXkx5y-lkp@intel.com \
--to=lkp@intel.com \
--cc=kbuild-all@lists.01.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@kernel.org \
--cc=x86@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®