函数逻辑报告 |
Source Code:fs\direct-io.c |
Create Date:2022-07-29 10:46:31 |
Last Modify:2020-03-12 14:18:49 | Copyright©Brick |
首页 | 函数Tree |
注解内核,赢得工具 | 下载SCCT | English |
函数名称:dio_complete() - called when all DIO BIO I/O has been completed* This drops i_dio_count, lets interested parties know that a DIO operation* has completed, and calculates the resulting return code for the operation
函数原型:static ssize_t dio_complete(struct dio *dio, ssize_t ret, unsigned int flags)
返回类型:ssize_t
参数:
类型 | 参数 | 名称 |
---|---|---|
struct dio * | dio | |
ssize_t | ret | |
unsigned int | flags |
239 | transferred等于0 |
248 | 如果ret恒等于负cb queued, will get completion event 则ret等于0 |
251 | 如果IO result 则 |
252 | transferred等于IO result |
255 | 如果op恒等于REQ_OP_READ且offset加transferred大于_size when submitted 则transferred等于_size when submitted 减offset |
259 | 如果此条件成立可能性小(为编译器优化)(ret == - EFAULT)且transferred则ret等于0 |
263 | 如果ret恒等于0则ret等于 from get_user_pages() |
265 | 如果ret恒等于0则ret等于IO error in completion path |
267 | 如果ret恒等于0则ret等于transferred |
270 | 如果IO completion function 则 |
272 | err等于IO completion function (kiocb , offset, ret, copy from map_bh.b_private ) |
289 | 如果flags按位与Can invalidate pages 且ret大于0且op恒等于REQ_OP_WRITE且nrpages则 |
299 | 结束I/O信号请求 |
301 | 如果flags按位与This is async IO 则 |
307 | 文件偏移加等于transferred |
311 | ki_complete(kiocb , ret, 0) |
314 | kmem_cache_free(dio_cache, dio) |
315 | 返回:ret |
名称 | 描述 |
---|---|
dio_aio_complete_work | |
dio_bio_end_aio | Asynchronous IO callback. |
do_blockdev_direct_IO | This is a library function for use by filesystem drivers |
源代码转换工具 开放的插件接口 | X |
---|---|
支持:c/c++/esqlc/java Oracle/Informix/Mysql 插件可实现:逻辑报告 代码生成和批量转换代码 |