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:__mark_inode_dirty - internal function*@inode: inode to mark*@flags: what kind of dirty (i

Proto:void __mark_inode_dirty(struct inode *inode, int flags)

Type:void

Parameter:

TypeParameterName
struct inode *inode
intflags
2245  sb = i_sb
2248  trace_writeback_mark_inode_dirty(inode, flags)
2254  If flags & (I_DIRTY_INODE | I_DIRTY_TIME) Then
2255  trace_writeback_dirty_inode_start(inode, flags)
2257  If dirty_inode Then dirty_inode(inode, flags)
2260  trace_writeback_dirty_inode(inode, flags)
2262  If flags & I_DIRTY_INODE Then flags &= ~I_DIRTY_TIME
2264  dirtytime = flags & I_DIRTY_TIME
2270  smp_mb()
2272  If (Misc & flags) == flags || dirtytime && Misc & I_DIRTY_INODE Then Return
2276  If Value for the false possibility is greater at compile time(Flag that makes the machine dump writes/reads and block dirtyings.) Then block_dump___mark_inode_dirty(inode)
2279  spin_lock( & _blocks, i_bytes, maybe i_size )
2280  If dirtytime && Misc & I_DIRTY_INODE Then Go to out_unlock_inode
2282  If (Misc & flags) != flags Then
2283  was_dirty = Misc & I_DIRTY
2285  inode_attach_wb(inode, NULL)
2287  If flags & I_DIRTY_INODE Then Misc &= ~I_DIRTY_TIME
2289  Misc |= flags
2296  If Misc & Writeback of inode is running Then Go to out_unlock_inode
2303  If Not S_ISBLK(i_mode) Then
2304  If inode_unhashed(inode) Then Go to out_unlock_inode
2307  If Misc & Set when inode is about to be freed but still has dirty pages or buffers attached or the inode itself is still dirty Then Go to out_unlock_inode
2314  If Not was_dirty Then
2317  bool wakeup_bdi = false
2348  Return
2351  out_unlock_inode :
2352  spin_unlock( & _blocks, i_bytes, maybe i_size )
Caller
NameDescribe
__set_page_dirty_buffersAdd a page to the dirty page list.* It is a sad fact of life that this function is called from several places* deeply under spinlocking. It may not sleep.* If the page has buffers, the uptodate buffers are set dirty, to preserve
mark_buffer_dirtymark_buffer_dirty - mark a buffer_head as needing writeout*@bh: the buffer_head to mark dirty* mark_buffer_dirty() will set the dirty bit against the buffer, then set* its backing page dirty, then tag the page as dirty in the page cache* and then attach
dax_insert_entryBy this point grab_mapping_entry() has ensured that we have a locked entry* of the appropriate size so we don't have to worry about downgrading PMDs to* PTEs
iomap_set_page_dirty
mark_inode_dirty
mark_inode_dirty_sync
__set_page_dirty_nobuffersFor address_spaces which do not use buffers. Just tag the page as dirty in* the xarray.* This is also used when a single buffer is being dirtied: we want to set the* page dirty in that case, but not all the buffers. This is a "bottom-up"