函数逻辑报告 |
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 插件可实现:逻辑报告 代码生成和批量转换代码 |