函数逻辑报告 |
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 |
注解内核,赢得工具 | 下载SCCT | English |
函数名称:__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 | |
int | flags |
2254 | 如果flags按位与I_DIRTY_INODE按位或I_DIRTY_TIME的值则 |
2257 | 如果dirty_inode则dirty_inode(inode, flags) |
2262 | 如果flags按位与I_DIRTY_INODE则flags与等于I_DIRTY_TIME的反 |
2264 | dirtytime等于flags按位与I_DIRTY_TIME |
2270 | smp_mb() |
2276 | 如果此条件成立可能性小(为编译器优化)(Flag that makes the machine dump writes/reads and block dirtyings.)则block_dump___mark_inode_dirty(inode) |
2279 | 加自旋锁 |
2280 | 如果dirtytime且Misc 按位与I_DIRTY_INODE则转到:out_unlock_inode |
2285 | inode_attach_wb(inode, NULL) |
2287 | 如果flags按位与I_DIRTY_INODE则Misc 与等于I_DIRTY_TIME的反 |
2296 | 如果Misc 按位与I_SYNC则转到:out_unlock_inode |
2304 | 如果inode_unhashed(inode)则转到:out_unlock_inode |
2307 | 如果Misc 按位与I_FREEING则转到:out_unlock_inode |
2314 | 如果非was_dirty则 |
2317 | bool wakeup_bdi = false |
2321 | WARN(bdi_cap_writeback_dirty(ur parent bdi ) && !st_bit - Determine whether a bit is set*@nr: bit number to test*@addr: Address to start counting from, "bdi-%s not registered\n", name) |
2325 | jiffies of first dirtying 等于jiffies |
2326 | 如果dirtytime则dirtied_time_when等于jiffies |
2329 | 如果Misc 按位与I_DIRTY则dirty_list等于dirty inodes |
2331 | 否则dirty_list等于ime stamps are dirty |
2337 | 自旋锁解锁 |
2346 | 如果bdi_cap_writeback_dirty(ur parent bdi )且wakeup_bdi则This function is used when the first inode for this wb is marked dirty |
2348 | 返回 |
2351 | out_unlock_inode : |
2352 | 自旋锁解锁 |
名称 | 描述 |
---|---|
__set_page_dirty_buffers | Add 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_dirty | mark_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_entry | By 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_nobuffers | For 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 |
源代码转换工具 开放的插件接口 | X |
---|---|
支持:c/c++/esqlc/java Oracle/Informix/Mysql 插件可实现:逻辑报告 代码生成和批量转换代码 |