函数逻辑报告

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

Source Code:mm\truncate.c Create Date:2022-07-27 15:38:00
Last Modify:2020-03-12 14:18:49 Copyright©Brick
首页 函数Tree
注解内核,赢得工具下载SCCTEnglish

函数名称:Unconditionally remove exceptional entries. Usually called from truncate* path. Note that the pagevec may be altered by this function by removing* exceptional entries similar to what pagevec_remove_exceptionals does.

函数原型:static void truncate_exceptional_pvec_entries(struct address_space *mapping, struct pagevec *pvec, unsigned long *indices, unsigned long end)

返回类型:void

参数:

类型参数名称
struct address_space *mapping
struct pagevec *pvec
unsigned long *indices
unsigned longend
67  如果shmem_mapping(mapping)则返回
70 j小于pagevec_count(pvec)循环如果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.
72  退出
74  如果j恒等于pagevec_count(pvec)则返回
77  dax等于dax_mapping(mapping)
78  lock等于非daxindices[j]小于end
79  如果lockxa_lock_irq( & i_pages)
82 i小于pagevec_count(pvec)循环
83  page等于pages[i]
84  index等于indices[i]
87  pages[j++]等于page
88  继续下一循环
91  如果index大于等于end则继续下一循环
96  继续下一循环
99  Regular page slots are stabilized by the page lock even without the tree* itself locked. These unlocked entries need verification under the tree* lock.
102  如果lockxa_unlock_irq( & i_pages)
104  nr等于j
调用者
名称描述
truncate_inode_pages_rangeruncate_inode_pages_range - truncate range of pages specified by start & end byte offsets*@mapping: mapping to truncate*@lstart: offset from which to truncate*@lend: offset to which to truncate (inclusive)* Truncate the page cache, removing the pages that