Function report

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

Source Code:fs\stack.c Create Date:2022-07-28 20:12:05
Last Modify:2020-03-12 14:18:49 Copyright©Brick
home page Tree
Annotation kernel can get tool activityDownload SCCTChinese

Name:does _NOT_ require i_mutex to be held.* This function cannot be inlined since i_size_{read,write} is rather* heavy-weight on 32-bit systems

Proto:void fsstack_copy_inode_size(struct inode *dst, struct inode *src)

Type:void

Parameter:

TypeParameterName
struct inode *dst
struct inode *src
22  i_size = NOTE: in a 32bit arch with a preemptable kernel and* an UP compile the i_size_read/write must be atomic* with respect to the local cpu (unlike with preempt disabled),* but they don't need to be atomic with respect to other cpus like in* true SMP (so they
34  If size of i_blocks > sizeof(long) Then spin_lock( & _blocks, i_bytes, maybe i_size )
36  i_blocks = i_blocks
37  If size of i_blocks > sizeof(long) Then spin_unlock( & _blocks, i_bytes, maybe i_size )
53  If size of i_size > sizeof(long) || size of i_blocks > sizeof(long) Then spin_lock( & _blocks, i_bytes, maybe i_size )
55  NOTE: unlike i_size_read(), i_size_write() does need locking around it* (normally i_mutex), otherwise on 32bit/SMP an update of i_size_seqcount* can be lost, resulting in subsequent i_size_read() calls spinning forever.
56  i_blocks = i_blocks
57  If size of i_size > sizeof(long) || size of i_blocks > sizeof(long) Then spin_unlock( & _blocks, i_bytes, maybe i_size )