函数逻辑报告

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

Source Code:fs\fs-writeback.c Create Date:2022-07-29 10:41:33
Last Modify:2020-03-12 14:18:49 Copyright©Brick
首页 函数Tree
注解内核,赢得工具下载SCCTEnglish

函数名称:__mark_inode_dirty - internal function*@inode: inode to mark*@flags: what kind of dirty (i

函数原型:void __mark_inode_dirty(struct inode *inode, int flags)

返回类型:void

参数:

类型参数名称
struct inode *inode
intflags
2245  sb等于i_sb
2248  trace_writeback_mark_inode_dirty(inode, flags)
2254  如果flags按位与I_DIRTY_INODE按位或I_DIRTY_TIME的值则
2255  trace_writeback_dirty_inode_start(inode, flags)
2257  如果dirty_inodedirty_inode(inode, flags)
2260  trace_writeback_dirty_inode(inode, flags)
2262  如果flags按位与I_DIRTY_INODEflags与等于I_DIRTY_TIME的反
2264  dirtytime等于flags按位与I_DIRTY_TIME
2270  smp_mb()
2272  如果Misc 按位与flags的值恒等于flagsdirtytimeMisc 按位与I_DIRTY_INODE则返回
2276  如果此条件成立可能性小(为编译器优化)(Flag that makes the machine dump writes/reads and block dirtyings.)则block_dump___mark_inode_dirty(inode)
2279  加自旋锁
2280  如果dirtytimeMisc 按位与I_DIRTY_INODE则转到:out_unlock_inode
2282  如果Misc 按位与flags的值不等于flags
2283  was_dirty等于Misc 按位与I_DIRTY
2285  inode_attach_wb(inode, NULL)
2287  如果flags按位与I_DIRTY_INODEMisc 与等于I_DIRTY_TIME的反
2289  Misc 或等于flags
2296  如果Misc 按位与I_SYNC则转到:out_unlock_inode
2303  如果非S_ISBLK(i_mode)则
2304  如果inode_unhashed(inode)则转到:out_unlock_inode
2307  如果Misc 按位与I_FREEING则转到:out_unlock_inode
2314  如果非was_dirty
2317  bool wakeup_bdi = false
2326  如果dirtytimedirtied_time_when等于jiffies
2329  如果Misc 按位与I_DIRTYdirty_list等于dirty inodes
2348  返回
2351  out_unlock_inode :
2352  自旋锁解锁
调用者
名称描述
__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
__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"
mark_inode_dirty
mark_inode_dirty_sync