Find and get a page reference
struct page * pagecache_get_page(struct address_space * mapping, pgoff_t offset, int fgp_flags, gfp_t gfp_mask);
mapping
the address_space to search
offset
the page index
fgp_flags
PCG flags
gfp_mask
gfp mask to use for the page cache data page allocation
Looks up the page cache slot at mapping & offset.
PCG flags modify how the page is returned.
the page will be marked accessed
Page is return locked
If page is not present then a new page is allocated using gfp_mask and added to the page cache and the VM's LRU list. The page is returned locked and with an increased refcount. Otherwise, NULL is returned.
If FGP_LOCK or FGP_CREAT are specified then the function may sleep even if the GFP flags specified for FGP_CREAT are atomic.
If there is a page cache page, it is returned with an increased refcount.