函数逻辑报告 |
Source Code:fs\fs-writeback.c |
Create Date:2022-07-29 10:41:27 |
| Last Modify:2020-03-12 14:18:49 | Copyright©Brick |
| 首页 | 函数Tree |
| 注解内核,赢得工具 | 下载SCCT | English |
函数名称:Move expired (dirtied before work->older_than_this) dirty inodes from*@delaying_queue to @dispatch_queue.
函数原型:static int move_expired_inodes(struct list_head *delaying_queue, struct list_head *dispatch_queue, int flags, struct wb_writeback_work *work)
返回类型:int
参数:
| 类型 | 参数 | 名称 |
|---|---|---|
| struct list_head * | delaying_queue | |
| struct list_head * | dispatch_queue | |
| int | flags | |
| struct wb_writeback_work * | work |
| 1231 | unsigned long * older_than_this = NULL |
| 1235 | struct super_block * sb = NULL |
| 1237 | do_sb_sort等于0 |
| 1238 | moved等于0 |
| 1240 | 如果flags按位与EXPIRE_DIRTY_ATIME的值恒等于0则older_than_this等于older_than_this |
| 1242 | 否则如果非sync(2) WB_SYNC_ALL writeback 则 |
| 1244 | older_than_this等于expire_time |
| 1248 | 如果older_than_this且inode_dirtied_after(inode, * older_than_this)则退出 |
| 1251 | 链表项移动到头部 |
| 1252 | moved自加 |
| 1253 | 如果flags按位与EXPIRE_DIRTY_ATIME则设置内存位 |
| 1255 | 如果sb_is_blkdev_sb(i_sb)则继续下一循环 |
| 1257 | 如果sb且sb不等于i_sb则do_sb_sort等于1 |
| 1263 | 如果非do_sb_sort则 |
| 1264 | 为栈加入第二个链表项 |
| 1265 | 转到:out |
| 1277 | out : |
| 1278 | 返回:moved |
| 名称 | 描述 |
|---|---|
| queue_io | Queue all expired dirty inodes for io, eldest first.* Before* newly dirtied b_dirty b_io b_more_io* =============> gf edc BA* After* newly dirtied b_dirty b_io b_more_io* =============> g fBAedc* |* +--> dequeue for IO |
| 源代码转换工具 开放的插件接口 | X |
|---|---|
| 支持:c/c++/esqlc/java Oracle/Informix/Mysql 插件可实现:逻辑报告 代码生成和批量转换代码 |