filemap_fault — read in file data for page fault handling
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.