Function report

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

Source Code:fs\iomap\buffered-io.c Create Date:2022-07-28 20:31:54
Last Modify:2020-03-12 14:18:49 Copyright©Brick
home page Tree
Annotation kernel can get tool activityDownload SCCTChinese

Name:iomap_page_mkwrite

Proto:vm_fault_t iomap_page_mkwrite(struct vm_fault *vmf, const struct iomap_ops *ops)

Type:vm_fault_t

Parameter:

TypeParameterName
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  If See page-flags.h for PAGE_MAPPING_FLAGS != i_mapping || offset > size Then
1088  ret = -EFAULT
1089  Go to out_unlock
1093  If offset > size - PAGE_SIZE Then length = offset_in_page(size)
1095  Else length = PAGE_SIZE
1098  When length > 0 cycle
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  If Value for the false possibility is greater at compile time(ret <= 0) Then Go to 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  Return 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  Return Convert errno to return value from ->page_mkwrite() call