函数逻辑报告

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

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

函数名称:dax_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

函数原型:struct page *dax_layout_busy_page(struct address_space *mapping)

返回类型:struct page

参数:

类型参数名称
struct address_space *mapping
578  XA_STATE() - Declare an XArray operation state.*@name: Name of this operation state (usually xas).*@array: Array to operate on.*@index: Initial index of interest.* Declare and initialise an xa_state on the stack.(xas, & i_pages, 0)
580  scanned等于0
581  struct page * page = NULL
586  如果IS_ENABLED(CONFIG_FOO) evaluates to 1 if CONFIG_FOO is set to 'y' or 'm',* 0 otherwise.(CONFIG_FS_DAX_LIMITED)则返回:NULL
589  如果非dax_mapping(mapping)或非Might pages of this file be mapped into userspace?则返回:NULL
604  map_mapping_range - unmap the portion of all mmaps in the specified* address_space corresponding to the specified byte range in the underlying* file
606  xas_lock_irq( & xas)
608  如果WARN_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.)则继续下一循环
610  如果此条件成立可能性小(为编译器优化)(dax_is_locked(entry))则entry等于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
612  如果entrypage等于dax_busy_page(entry)
614  put_unlocked_entry( & xas, entry)
615  如果page退出
617  如果scanned先自加取模XA_CHECK_SCHED则继续下一循环
620  xas_pause() - Pause a walk to drop a lock.*@xas: XArray operation state.* Some users need to pause a walk and drop the lock they're holding in* order to yield to a higher priority thread or carry out an operation* on an entry
621  xas_unlock_irq( & xas)
622  cond_resched()
623  xas_lock_irq( & xas)
625  xas_unlock_irq( & xas)
626  返回:page