- int replace_page_cache_page(struct page * old, struct page * new, gfp_t gfp_mask);
- page to be replaced
- page to replace with
- allocation mode
This function replaces a page in the pagecache with a new one. On success it acquires the pagecache reference for the new page and drops it for the old page. Both the old and new pages must be locked. This function does not add the new page to the LRU, the caller must do that.
The remove + add is atomic. The only way this function can fail is memory allocation failure.