函数逻辑报告

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

Source Code:fs\iomap\buffered-io.c Create Date:2022-07-29 11:07:26
Last Modify:2020-03-12 14:18:49 Copyright©Brick
首页 函数Tree
注解内核,赢得工具下载SCCTEnglish

函数名称:iomap_page_mkwrite

函数原型:vm_fault_t iomap_page_mkwrite(struct vm_fault *vmf, const struct iomap_ops *ops)

返回类型:vm_fault_t

参数:

类型参数名称
struct vm_fault *vmf
const struct iomap_ops *ops
1077  page等于page
1078  inode等于file_inode(vm_file)
1083  lock_page may only be called if we have the page's inode pinned.
1084  size等于NOTE: in a 32bit arch with a preemptable kernel and* an UP compile the i_size_read/write must be atomic* with respect to the local cpu (unlike with preempt disabled),* but they don't need to be atomic with respect to other cpus like in* true SMP (so they
1085  offset等于Return byte-offset into filesystem object for page.
1086  如果 See page-flags.h for PAGE_MAPPING_FLAGS 不等于i_mappingoffset大于size
1088  ret等于负EFAULT
1089  转到:out_unlock
1093  如果offset大于sizePAGE_SIZElength等于offset_in_page(size)
1095  否则length等于PAGE_SIZE
1098 length大于0循环
1099  ret等于Execute a iomap write on a segment of the mapping that spans a* contiguous range of pages that have identical block mapping state
1102  如果此条件成立可能性小(为编译器优化)(ret <= 0)则转到:out_unlock
1104  offset加等于ret
1105  length减等于ret
1108  wait_for_stable_page() - wait for writeback to finish, if necessary.*@page: The page to wait on.* This function determines if the given page is related to a backing device* that requires page contents to be held stable during writeback. If so, then
1109  返回:VM_FAULT_LOCKED
1110  out_unlock :
1111  lock_page - unlock a locked page*@page: the page* Unlocks the page and wakes up sleepers in ___wait_on_page_locked().* Also wakes sleepers in wait_on_page_writeback() because the wakeup* mechanism between PageLocked pages and PageWriteback pages is shared.
1112  返回:Convert errno to return value from ->page_mkwrite() call