函数逻辑报告 | 
Source Code:fs\iomap\buffered-io.c | 
Create Date:2022-07-29 11:07:20 | 
| Last Modify:2020-03-12 14:18:49 | Copyright©Brick | 
| 首页 | 函数Tree | 
| 注解内核,赢得工具 | 下载SCCT | English | 
函数名称:iomap_write_begin
函数原型:static int iomap_write_begin(struct inode *inode, loff_t pos, unsigned len, unsigned flags, struct page **pagep, struct iomap *iomap, struct iomap *srcmap)
返回类型:int
参数:
| 类型 | 参数 | 名称 | 
|---|---|---|
| struct inode * | inode | |
| loff_t | pos | |
| unsigned | len | |
| unsigned | flags | |
| struct page ** | pagep | |
| struct iomap * | iomap | |
| struct iomap * | srcmap | 
| 646 | status等于0 | 
| 649 | 如果srcmap不等于iomap则BUG_ON(pos + len > file offset of mapping, bytes + length of mapping, bytes ) | 
| 652 | 如果fatal_signal_pending(当前进程)则返回:负EINTR | 
| 655 | 如果page_ops且page_prepare则 | 
| 661 | page等于Find or create a page at the given pagecache position. Return the locked* page. This function is specifically for buffered writes. | 
| 663 | 如果非page则 | 
| 665 | 转到:out_no_page | 
| 668 | 如果 type of mapping 恒等于data inline in the inode 则iomap_read_inline_data(inode, page, srcmap) | 
| 670 | 否则如果 flags for mapping 按位与IOMAP_F_BUFFER_HEAD则status等于__block_write_begin_int(page, pos, len, NULL, srcmap) | 
| 676 | 如果此条件成立可能性小(为编译器优化)(status)则转到:out_unlock | 
| 680 | 返回:0 | 
| 682 | out_unlock : | 
| 685 | iomap_write_failed(inode, pos, len) | 
| 687 | out_no_page : | 
| 690 | 返回:status | 
| 源代码转换工具 开放的插件接口  | X | 
|---|---|
| 支持:c/c++/esqlc/java Oracle/Informix/Mysql 插件可实现:逻辑报告 代码生成和批量转换代码  |