Function report

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

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

Name:The @s_sync_lock is used to serialise concurrent sync operations* to avoid lock contention problems with concurrent wait_sb_inodes() calls.* Concurrent callers will block on the s_sync_lock rather than doing contending* walks

Proto:static void wait_sb_inodes(struct super_block *sb)

Type:void

Parameter:

TypeParameterName
struct super_block *sb
2367  LIST_HEAD(sync_list)
2373  WARN_ON(!In all implementations count != 0 means locked )
2375  mutex_lock( & s_sync_lock)
2386  _read_lock() - mark the beginning of an RCU read-side critical section* When synchronize_rcu() is invoked on one CPU while other CPUs* are within RCU read-side critical sections, then the* synchronize_rcu() is guaranteed to block until after all the other
2387  spin_lock_irq( & s_inode_wblist_lock)
2388  list_splice_init - join two lists and reinitialise the emptied list.*@list: the new list to add.*@head: the place to add it in the first list.* The list at @list is reinitialised
2397  When Not list_empty - tests whether a list is empty*@head: the list to test. cycle
2398  inode = list_first_entry - get the first element from a list*@ptr: the list head to take the element from.*@type: the type of the struct this is embedded in.*@member: the name of the list_head within the struct.* Note, that list is expected to be not empty.( & sync_list, structinode, i_wb_list)
2400  mapping = i_mapping
2408  list_move_tail - delete from one list and add as another's tail*@list: the entry to move*@head: the head that will follow our entry
2415  If Not Returns true if any of the pages in the mapping are marked with the tag. Then Continue
2418  spin_unlock_irq( & s_inode_wblist_lock)
2420  spin_lock( & _blocks, i_bytes, maybe i_size )
2425  Continue
2427  __iget(inode)
2428  spin_unlock( & _blocks, i_bytes, maybe i_size )
2429  _read_unlock() - marks the end of an RCU read-side critical section.* In most situations, rcu_read_unlock() is immune from deadlock.* However, in kernels built with CONFIG_RCU_BOOST, rcu_read_unlock()
2436  lemap_fdatawait_keep_errors - wait for writeback without clearing errors*@mapping: address space structure to wait for* Walk the list of under-writeback pages of the given address space* and wait for all of them. Unlike filemap_fdatawait(), this function
2438  cond_resched()
2440  put an inode
2442  _read_lock() - mark the beginning of an RCU read-side critical section* When synchronize_rcu() is invoked on one CPU while other CPUs* are within RCU read-side critical sections, then the* synchronize_rcu() is guaranteed to block until after all the other
2443  spin_lock_irq( & s_inode_wblist_lock)
2445  spin_unlock_irq( & s_inode_wblist_lock)
2446  _read_unlock() - marks the end of an RCU read-side critical section.* In most situations, rcu_read_unlock() is immune from deadlock.* However, in kernels built with CONFIG_RCU_BOOST, rcu_read_unlock()
2447  mutex_unlock - release the mutex*@lock: the mutex to be released* Unlock a mutex that has been locked by this task previously.* This function must not be used in interrupt context. Unlocking* of a not locked mutex is not allowed.
Caller
NameDescribe
sync_inodes_sbsync_inodes_sb - sync sb inode pages*@sb: the superblock* This function writes and waits on any dirty inode belonging to this* super_block.