- int filemap_fault(struct vm_area_struct * vma, struct vm_fault * vmf);
- vma in which the fault was taken
- 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.