FIND_OR_CREATE_PAGE(9)

NAME
find_or_create_page - locate or add a pagecache page

SYNOPSIS

struct page * find_or_create_page (struct address_space * mapping, unsigned long index, gfp_t gfp_mask);

ARGUMENTS

mapping
    the page's address_space

index
    the page's index into the mapping

gfp_mask
    page allocation mode

DESCRIPTION

Locates a page in the pagecache. If the page is not present, a new page is allocated using gfp_mask and is added to the pagecache and to the VM's LRU list. The returned page is locked and has its reference count incremented.

 find_or_create_page may sleep, even if gfp_flags specifies an atomic allocation!

 find_or_create_page returns the desired page's address, or zero on memory exhaustion.

DESCRIPTION

Locates a page in the pagecache. If the page is not present, a new page is allocated using gfp_mask and is added to the pagecache and to the VM's LRU list. The returned page is locked and has its reference count incremented.

 find_or_create_page may sleep, even if gfp_flags specifies an atomic allocation!

 find_or_create_page returns the desired page's address, or zero on memory exhaustion.