Replace use of the legacy vm_flags_t flags with vma_flags_t values in the file fault and mmap readahead logic.
No functional change intended. Signed-off-by: Lorenzo Stoakes (ARM) <[email protected]> --- mm/filemap.c | 24 +++++++++++++----------- 1 file changed, 13 insertions(+), 11 deletions(-) diff --git a/mm/filemap.c b/mm/filemap.c index b74bc1e5015c..d8b538bd1404 100644 --- a/mm/filemap.c +++ b/mm/filemap.c @@ -3351,13 +3351,14 @@ static struct file *do_sync_mmap_readahead(struct vm_fault *vmf) struct address_space *mapping = file->f_mapping; DEFINE_READAHEAD(ractl, file, ra, mapping, vmf->pgoff); struct file *fpin = NULL; - vm_flags_t vm_flags = vmf->vma->vm_flags; + struct vm_area_struct *vma = vmf->vma; bool force_thp_readahead = false; unsigned int thp_order = 0; unsigned short mmap_miss; /* Use the readahead code, even if readahead is disabled */ - if (IS_ENABLED(CONFIG_TRANSPARENT_HUGEPAGE) && (vm_flags & VM_HUGEPAGE)) { + if (IS_ENABLED(CONFIG_TRANSPARENT_HUGEPAGE) && + vma_test(vma, VMA_HUGEPAGE_BIT)) { /* * Cap max THP order at 2MB: this is the common PMD-sized * hugepage size, and it avoids memory pressure from very @@ -3377,20 +3378,21 @@ static struct file *do_sync_mmap_readahead(struct vm_fault *vmf) * If we don't want any read-ahead, don't bother. * VM_EXEC case below is already intended for random access. */ - if ((vm_flags & (VM_RAND_READ | VM_EXEC)) == VM_RAND_READ) + if (vma_test(vma, VMA_RAND_READ_BIT) && + !vma_test(vma, VMA_EXEC_BIT)) return fpin; if (!ra->ra_pages) return fpin; - if (vm_flags & VM_SEQ_READ) { + if (vma_test(vma, VMA_SEQ_READ_BIT)) { fpin = maybe_unlock_mmap_for_io(vmf, fpin); page_cache_sync_ra(&ractl, ra->ra_pages); return fpin; } } - if (!(vm_flags & (VM_SEQ_READ | VM_EXEC))) { + if (!vma_test_any(vma, VMA_SEQ_READ_BIT, VMA_EXEC_BIT)) { /* Avoid banging the cache line if not needed */ mmap_miss = READ_ONCE(ra->mmap_miss); if (mmap_miss < MMAP_LOTSAMISS * 10) @@ -3414,7 +3416,7 @@ static struct file *do_sync_mmap_readahead(struct vm_fault *vmf) * Fetch two folios so we get the chance to actually * readahead, unless we've been told not to. */ - if (!(vm_flags & VM_RAND_READ)) + if (!vma_test(vma, VMA_RAND_READ_BIT)) ra->size *= 2; ra->async_size = folio_nr_pages; ra->order = thp_order; @@ -3422,7 +3424,7 @@ static struct file *do_sync_mmap_readahead(struct vm_fault *vmf) return fpin; } - if (vm_flags & VM_EXEC) { + if (vma_test(vma, VMA_EXEC_BIT)) { /* * Allow arch to request a preferred minimum folio order for * executable memory. This can often be beneficial to @@ -3477,7 +3479,7 @@ static struct file *do_async_mmap_readahead(struct vm_fault *vmf, unsigned short mmap_miss; /* If we don't want any read-ahead, don't bother */ - if (vmf->vma->vm_flags & VM_RAND_READ || !ra->ra_pages) + if (vma_test(vmf->vma, VMA_RAND_READ_BIT) || !ra->ra_pages) return fpin; /* @@ -3491,7 +3493,7 @@ static struct file *do_async_mmap_readahead(struct vm_fault *vmf, * keep the counter symmetric. */ if (likely(!folio_test_locked(folio)) && - !(vmf->vma->vm_flags & (VM_SEQ_READ | VM_EXEC))) { + !vma_test_any(vmf->vma, VMA_SEQ_READ_BIT, VMA_EXEC_BIT)) { mmap_miss = READ_ONCE(ra->mmap_miss); if (mmap_miss) WRITE_ONCE(ra->mmap_miss, --mmap_miss); @@ -3524,7 +3526,7 @@ static vm_fault_t filemap_fault_recheck_pte_none(struct vm_fault *vmf) * scenarios. Recheck the PTE without PT lock firstly, thereby reducing * the number of times we hold PT lock. */ - if (!(vma->vm_flags & VM_LOCKED)) + if (!vma_test(vma, VMA_LOCKED_BIT)) return 0; if (!(vmf->flags & FAULT_FLAG_ORIG_PTE_VALID)) @@ -4000,7 +4002,7 @@ vm_fault_t filemap_map_pages(struct vm_fault *vmf, if ((map_ret & VM_FAULT_NOPAGE) && !(vmf->flags & FAULT_FLAG_TRIED) && !folio_test_workingset(folio) && - !(vma->vm_flags & (VM_SEQ_READ | VM_EXEC))) { + !vma_test_any(vma, VMA_SEQ_READ_BIT, VMA_EXEC_BIT)) { unsigned short mmap_miss; mmap_miss = READ_ONCE(file->f_ra.mmap_miss); -- 2.56.0
