函数逻辑报告 |
Source Code:fs\buffer.c |
Create Date:2022-07-29 10:45:17 |
Last Modify:2020-03-18 10:38:29 | Copyright©Brick |
首页 | 函数Tree |
注解内核,赢得工具 | 下载SCCT | English |
函数名称:__block_write_begin_int
函数原型:int __block_write_begin_int(struct page *page, loff_t pos, unsigned len, get_block_t *get_block, struct iomap *iomap)
返回类型:int
参数:
类型 | 参数 | 名称 |
---|---|---|
struct page * | page | |
loff_t | pos | |
unsigned | len | |
get_block_t * | get_block | |
struct iomap * | iomap |
1978 | err等于0 |
1980 | wait_bh等于wait |
1982 | BUG_ON(!PageLocked(page)) |
1987 | head等于create_page_buffers(page, inode, 0) |
1988 | blocksize等于 size of mapping |
1993 | 以bh不等于head或非block_start循环 |
1995 | block_end等于block_start加blocksize |
1996 | 如果block_end小于等于from或block_start大于等于to则 |
1997 | 如果PageUptodate(page)则 |
2001 | 继续下一循环 |
2003 | 如果buffer_new(bh)则clear_buffer_new(bh) |
2005 | 如果非buffer_mapped(bh)则 |
2006 | WARN_ON( size of mapping != blocksize) |
2007 | 如果get_block则 |
2011 | 否则 |
2012 | iomap_to_bh(inode, block, bh, iomap) |
2015 | 如果buffer_new(bh)则 |
2016 | clean_bdev_bh_alias(bh) |
2017 | 如果PageUptodate(page)则 |
2018 | clear_buffer_new(bh) |
2021 | 继续下一循环 |
2023 | 如果block_end大于to或block_start小于from则zero_user_segments(page, to, block_end, block_start, from) |
2027 | 继续下一循环 |
2030 | 如果PageUptodate(page)则 |
2033 | 继续下一循环 |
2046 | wait_on_buffer( * --wait_bh) |
2052 | 返回:err |
源代码转换工具 开放的插件接口 | X |
---|---|
支持:c/c++/esqlc/java Oracle/Informix/Mysql 插件可实现:逻辑报告 代码生成和批量转换代码 |