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