函数逻辑报告

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

Source Code:mm\memfd.c Create Date:2022-07-27 18:13:11
Last Modify:2022-05-20 10:27:46 Copyright©Brick
首页 函数Tree
注解内核,赢得工具下载SCCTEnglish

函数名称:memfd_tag_pins

函数原型:static void memfd_tag_pins(struct xa_state *xas)

返回类型:void

参数:

类型参数名称
struct xa_state *xas
34  tagged等于0
36  lru_add_drain()
38  xas_lock_irq(xas)
40  如果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.则继续下一循环
42  page等于find_subpage(page, xa_index)
43  如果page_count(page)减page_mapcount(page)大于1则xas_set_mark() - Sets the mark on this entry and its parents.*@xas: XArray operation state.*@mark: Mark number.* Sets the specified mark on this entry, and walks up the tree setting it* on all the ancestor entries
46  如果tagged先自加取模XA_CHECK_SCHED则继续下一循环
49  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
50  xas_unlock_irq(xas)
51  cond_resched()
52  xas_lock_irq(xas)
54  xas_unlock_irq(xas)
调用者
名称描述
memfd_wait_for_pinsSetting SEAL_WRITE requires us to verify there's no pending writer. However,* via get_user_pages(), drivers might have some pending I/O without any active* user-space mappings (eg., direct-IO, AIO). Therefore, we look at all pages