Read in file data for page fault handling
int filemap_fault(struct vm_area_struct * vma, struct vm_fault * vmf);
vma
vma in which the fault was taken
vmf
struct vm_fault containing details of the fault
filemap_fault is invoked via the vma operations vector for a mapped memory region to read in file data during a page fault.
The goto's are kind of ugly, but this streamlines the normal case of having it in the page cache, and handles the special cases reasonably without having a lot of duplicated code.