函数逻辑报告 |
Source Code:mm\migrate.c |
Create Date:2022-07-27 17:32:34 |
Last Modify:2022-05-20 09:53:13 | Copyright©Brick |
首页 | 函数Tree |
注解内核,赢得工具 | 下载SCCT | English |
函数名称:Replace the page in the mapping.* The number of remaining references must be:* 1 for anonymous pages without a mapping* 2 for pages with a mapping* 3 for pages with a mapping and PagePrivate/PagePrivate2 set.
函数原型:int migrate_page_move_mapping(struct address_space *mapping, struct page *newpage, struct page *page, int extra_count)
返回类型:int
参数:
类型 | 参数 | 名称 |
---|---|---|
struct address_space * | mapping | |
struct page * | newpage | |
struct page * | page | |
int | extra_count |
405 | 如果非mapping则 |
407 | 如果page_count(page)不等于expected_count则返回:负EAGAIN |
413 | 如果PageSwapBacked(page)则__SetPageSwapBacked(newpage) |
422 | xas_lock_irq( & xas) |
424 | xas_unlock_irq( & xas) |
425 | 返回:负EAGAIN |
428 | 如果非page_ref_freeze(page, expected_count)则 |
429 | xas_unlock_irq( & xas) |
430 | 返回:负EAGAIN |
439 | page_ref_add(newpage, hpage_nr_pages(page)) |
440 | 如果PageSwapBacked(page)则 |
442 | 如果PageSwapCache(page)则 |
443 | SetPageSwapCache(newpage) |
444 | set_page_private(newpage, page_private(page)) |
446 | 否则 |
447 | VM_BUG_ON_PAGE(PageSwapCache(page), page) |
452 | 如果dirty则 |
453 | ClearPageDirty(page) |
454 | SetPageDirty(newpage) |
461 | 以i小于HPAGE_PMD_NR循环 |
474 | xas_unlock( & xas) |
501 | 开中断() |
名称 | 描述 |
---|---|
migrate_page | Common logic to directly migrate a single LRU page suitable for* pages that do not use PagePrivate/PagePrivate2.* Pages are locked upon entry and exit. |
__buffer_migrate_page | |
iomap_migrate_page | |
aio_migratepage |
源代码转换工具 开放的插件接口 | X |
---|---|
支持:c/c++/esqlc/java Oracle/Informix/Mysql 插件可实现:逻辑报告 代码生成和批量转换代码 |