Function report

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

Source Code:mm\migrate.c Create Date:2022-07-28 15:58:41
Last Modify:2022-05-20 09:53:13 Copyright©Brick
home page Tree
Annotation kernel can get tool activityDownload SCCTChinese

Name: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.

Proto:int migrate_page(struct address_space *mapping, struct page *newpage, struct page *page, enum migrate_mode mode)

Type:int

Parameter:

TypeParameterName
struct address_space *mapping
struct page *newpage
struct page *page
enum migrate_modemode
682  BUG_ON(Only test-and-set exist for PG_writeback. The unconditional operators are* risky: they bypass page accounting.)
684  rc = 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.
686  If rc != Return values from addresss_space_operations.migratepage():* - negative errno on page migration failure;* - zero on page migration success; Then Return rc
689  If mode != MIGRATE_SYNC_NO_COPY Then migrate_page_copy(newpage, page)
691  Else Copy the page to its new location
693  Return Return values from addresss_space_operations.migratepage():* - negative errno on page migration failure;* - zero on page migration success;
Caller
NameDescribe
__buffer_migrate_page
fallback_migrate_pageDefault handling if a filesystem does not provide a migration function.
move_to_new_pageMove a page to a newly allocated page* The page is locked and all ptes have been successfully removed.* The new page will have replaced the old page if this function* is successful.* Return value:* < 0 - error code* MIGRATEPAGE_SUCCESS - success