Lines Matching refs:vmf

2332 static struct file *maybe_unlock_mmap_for_io(struct vm_fault *vmf,  in maybe_unlock_mmap_for_io()  argument
2335 int flags = vmf->flags; in maybe_unlock_mmap_for_io()
2347 fpin = get_file(vmf->vma->vm_file); in maybe_unlock_mmap_for_io()
2348 up_read(&vmf->vma->vm_mm->mmap_sem); in maybe_unlock_mmap_for_io()
2364 static int lock_page_maybe_drop_mmap(struct vm_fault *vmf, struct page *page, in lock_page_maybe_drop_mmap() argument
2375 if (vmf->flags & FAULT_FLAG_RETRY_NOWAIT) in lock_page_maybe_drop_mmap()
2378 *fpin = maybe_unlock_mmap_for_io(vmf, *fpin); in lock_page_maybe_drop_mmap()
2379 if (vmf->flags & FAULT_FLAG_KILLABLE) { in lock_page_maybe_drop_mmap()
2388 up_read(&vmf->vma->vm_mm->mmap_sem); in lock_page_maybe_drop_mmap()
2404 static struct file *do_sync_mmap_readahead(struct vm_fault *vmf) in do_sync_mmap_readahead() argument
2406 struct file *file = vmf->vma->vm_file; in do_sync_mmap_readahead()
2410 pgoff_t offset = vmf->pgoff; in do_sync_mmap_readahead()
2413 if (vmf->vma->vm_flags & VM_RAND_READ) in do_sync_mmap_readahead()
2418 if (vmf->vma->vm_flags & VM_SEQ_READ) { in do_sync_mmap_readahead()
2419 fpin = maybe_unlock_mmap_for_io(vmf, fpin); in do_sync_mmap_readahead()
2439 fpin = maybe_unlock_mmap_for_io(vmf, fpin); in do_sync_mmap_readahead()
2452 static struct file *do_async_mmap_readahead(struct vm_fault *vmf, in do_async_mmap_readahead() argument
2455 struct file *file = vmf->vma->vm_file; in do_async_mmap_readahead()
2459 pgoff_t offset = vmf->pgoff; in do_async_mmap_readahead()
2462 if (vmf->vma->vm_flags & VM_RAND_READ) in do_async_mmap_readahead()
2467 fpin = maybe_unlock_mmap_for_io(vmf, fpin); in do_async_mmap_readahead()
2497 vm_fault_t filemap_fault(struct vm_fault *vmf) in filemap_fault() argument
2500 struct file *file = vmf->vma->vm_file; in filemap_fault()
2505 pgoff_t offset = vmf->pgoff; in filemap_fault()
2518 if (likely(page) && !(vmf->flags & FAULT_FLAG_TRIED)) { in filemap_fault()
2523 fpin = do_async_mmap_readahead(vmf, page); in filemap_fault()
2527 count_memcg_event_mm(vmf->vma->vm_mm, PGMAJFAULT); in filemap_fault()
2529 fpin = do_sync_mmap_readahead(vmf); in filemap_fault()
2533 vmf->gfp_mask); in filemap_fault()
2541 if (!lock_page_maybe_drop_mmap(vmf, page, &fpin)) in filemap_fault()
2580 vmf->page = page; in filemap_fault()
2591 fpin = maybe_unlock_mmap_for_io(vmf, fpin); in filemap_fault()
2623 void filemap_map_pages(struct vm_fault *vmf, in filemap_map_pages() argument
2626 struct file *file = vmf->vma->vm_file; in filemap_map_pages()
2671 vmf->address += (xas.xa_index - last_pgoff) << PAGE_SHIFT; in filemap_map_pages()
2672 if (vmf->pte) in filemap_map_pages()
2673 vmf->pte += xas.xa_index - last_pgoff; in filemap_map_pages()
2675 if (alloc_set_pte(vmf, NULL, page)) in filemap_map_pages()
2685 if (pmd_trans_huge(*vmf->pmd)) in filemap_map_pages()
2692 vm_fault_t filemap_page_mkwrite(struct vm_fault *vmf) in filemap_page_mkwrite() argument
2694 struct page *page = vmf->page; in filemap_page_mkwrite()
2695 struct inode *inode = file_inode(vmf->vma->vm_file); in filemap_page_mkwrite()
2699 file_update_time(vmf->vma->vm_file); in filemap_page_mkwrite()
2747 vm_fault_t filemap_page_mkwrite(struct vm_fault *vmf) in filemap_page_mkwrite() argument