函数逻辑报告 |
Source Code:fs\fs-writeback.c |
Create Date:2022-07-29 10:41:29 |
Last Modify:2020-03-12 14:18:49 | Copyright©Brick |
首页 | 函数Tree |
注解内核,赢得工具 | 下载SCCT | English |
函数名称:Write a portion of b_io inodes which belong to @sb.* Return the number of pages and/or inodes written.* NOTE! This is called with wb->list_lock held, and will* unlock and relock that for each inode it ends up doing* IO for.
函数原型:static long writeback_sb_inodes(struct super_block *sb, struct bdi_writeback *wb, struct wb_writeback_work *work)
返回类型:long
参数:
类型 | 参数 | 名称 |
---|---|---|
struct super_block * | sb | |
struct bdi_writeback * | wb | |
struct wb_writeback_work * | work |
1638 | start_time等于jiffies |
1640 | wrote等于0 |
1670 | 加自旋锁 |
1671 | 如果Misc 按位与I_NEW按位或I_FREEING按位或I_WILL_FREE的值则 |
1672 | 自旋锁解锁 |
1674 | 继续下一循环 |
1676 | 如果Misc 按位与I_SYNC且sync_mode不等于Wait on every mapping 则 |
1686 | 自旋锁解锁 |
1689 | 继续下一循环 |
1691 | 自旋锁解锁 |
1702 | 加自旋锁 |
1703 | 继续下一循环 |
1706 | wbc_attach_and_unlock_inode( & wbc, inode) |
1708 | write_chunk等于writeback_chunk_size(wb, work) |
1710 | Pages which were not written 等于0 |
1718 | wbc_detach_inode( & wbc) |
1722 | 如果need_resched()则 |
1731 | blk_flush_plug(当前进程) |
1732 | cond_resched() |
1739 | tmp_wb等于inode_to_wb_and_lock_list(inode) |
1740 | 加自旋锁 |
1741 | 如果非Misc 按位与I_DIRTY_ALL的值则wrote自加 |
1744 | inode_sync_complete(inode) |
1745 | 自旋锁解锁 |
1747 | 如果此条件成立可能性小(为编译器优化)(tmp_wb != wb)则 |
1756 | 如果wrote则 |
1757 | 如果ime_is_before_jiffies(a) return true if a is before jiffies (start_time + HZ / 10UL)则退出 |
1763 | 返回:wrote |
名称 | 描述 |
---|---|
__writeback_inodes_wb | |
wb_writeback | Explicit flushing or periodic writeback of "old" data |
源代码转换工具 开放的插件接口 | X |
---|---|
支持:c/c++/esqlc/java Oracle/Informix/Mysql 插件可实现:逻辑报告 代码生成和批量转换代码 |