mm: Optimize find_exact_vma() to use vma_lookup()
authorLiam R. Howlett <Liam.Howlett@Oracle.com>
Thu, 8 Apr 2021 20:15:00 +0000 (16:15 -0400)
committerMatthew Wilcox (Oracle) <willy@infradead.org>
Sat, 30 Oct 2021 03:38:42 +0000 (23:38 -0400)
Use vma_lookup() to walk the tree to the start value requested.  If
the vma at the start does not match, then the answer is NULL and there
is no need to look at the next vma the way that find_vma() would.

Signed-off-by: Liam R. Howlett <Liam.Howlett@Oracle.com>
include/linux/mm.h

index c66a4cce1eb331c3c2d18e2057d328c4cc53ef29..3ed0be7a9c281a8500136268b229dfe4db55b015 100644 (file)
@@ -2773,7 +2773,7 @@ static inline unsigned long vma_pages(struct vm_area_struct *vma)
 static inline struct vm_area_struct *find_exact_vma(struct mm_struct *mm,
                                unsigned long vm_start, unsigned long vm_end)
 {
-       struct vm_area_struct *vma = find_vma(mm, vm_start);
+       struct vm_area_struct *vma = vma_lookup(mm, vm_start);
 
        if (vma && (vma->vm_start != vm_start || vma->vm_end != vm_end))
                vma = NULL;