函数逻辑报告

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

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

函数名称:Look up entry in page cache, wait for it to become unlocked if it* is a DAX entry and return it. The caller must subsequently call* put_unlocked_entry() if it did not lock the entry or dax_unlock_entry()* if it did

函数原型:static void *get_unlocked_entry(struct xa_state *xas, unsigned int order)

返回类型:void

参数:

类型参数名称
struct xa_state *xas
unsigned intorder
218  init_wait( & wait)
219  func等于wake_exceptional_entry_func
221  循环
222  entry等于xas_find_conflict() - Find the next present entry in a range.*@xas: XArray operation state.* The @xas describes both a range and a position within that range.* Context: Any context. Expects xa_lock to be held.
223  如果非entryWARN_ON_ONCE(!xa_is_value() - Determine if an entry is a value.*@entry: XArray entry.* Context: Any context.* Return: True if the entry is a value, false if it is a pointer.)则返回:entry
225  如果dax_entry_order(entry)小于order则返回:XA_RETRY_ENTRY
227  如果非dax_is_locked(entry)则返回:entry
230  wq等于dax_entry_waitqueue(xas, entry, & key)
231  prepare_to_wait_exclusive(wq, & wait, 深度睡眠态)
233  xas_unlock_irq(xas)
234  xas_reset() - Reset an XArray operation state.*@xas: XArray operation state.* Resets the error or walk state of the @xas so future walks of the* array will start from the root. Use this if you have dropped the* xarray lock and want to reuse the xa_state.
235  进程调度
236  sh_wait - clean up after waiting in a queue*@wq_head: waitqueue waited on*@wq_entry: wait descriptor* Sets current thread back to running state and removes* the wait descriptor from the given waitqueue if still* queued.
237  xas_lock_irq(xas)
调用者
名称描述
grab_mapping_entryFind page cache entry at given index. If it is a DAX entry, return it* with the entry locked. If the page cache doesn't contain an entry at* that index, add a locked empty entry.* When requesting an entry with size DAX_PMD, grab_mapping_entry() will
dax_layout_busy_pagedax_layout_busy_page - find first pinned page in @mapping*@mapping: address space to scan for a page with ref count > 1* DAX requires ZONE_DEVICE mapped pages. These pages are never* 'onlined' to the page allocator so they are considered idle when
__dax_invalidate_entry
dax_writeback_one
dax_insert_pfn_mkwritedax_insert_pfn_mkwrite - insert PTE or PMD entry into page tables*@vmf: The description of the fault*@pfn: PFN to insert*@order: Order of entry to insert.* This function inserts a writeable PTE or PMD entry into the page tables* for an mmaped DAX file