]> git.baikalelectronics.ru Git - kernel.git/commitdiff
mm/mmap.c: get rid of odd jump labels in find_mergeable_anon_vma()
authorMiaohe Lin <linmiaohe@huawei.com>
Fri, 31 Jan 2020 06:14:51 +0000 (22:14 -0800)
committerLinus Torvalds <torvalds@linux-foundation.org>
Fri, 31 Jan 2020 18:30:39 +0000 (10:30 -0800)
The jump labels try_prev and none are not really needed in
find_mergeable_anon_vma(), eliminate them to improve readability.

Link: http://lkml.kernel.org/r/1574079844-17493-1-git-send-email-linmiaohe@huawei.com
Signed-off-by: Miaohe Lin <linmiaohe@huawei.com>
Reviewed-by: David Hildenbrand <david@redhat.com>
Reviewed-by: John Hubbard <jhubbard@nvidia.com>
Reviewed-by: Wei Yang <richardw.yang@linux.intel.com>
Acked-by: David Rientjes <rientjes@google.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
mm/mmap.c

index bc788548c4e588ba4017e51cf8179313ee737bfc..6756b8bb00334c023c73d1a8112785d205e5c927 100644 (file)
--- a/mm/mmap.c
+++ b/mm/mmap.c
@@ -1270,26 +1270,22 @@ static struct anon_vma *reusable_anon_vma(struct vm_area_struct *old, struct vm_
  */
 struct anon_vma *find_mergeable_anon_vma(struct vm_area_struct *vma)
 {
-       struct anon_vma *anon_vma;
-       struct vm_area_struct *near;
-
-       near = vma->vm_next;
-       if (!near)
-               goto try_prev;
-
-       anon_vma = reusable_anon_vma(near, vma, near);
-       if (anon_vma)
-               return anon_vma;
-try_prev:
-       near = vma->vm_prev;
-       if (!near)
-               goto none;
-
-       anon_vma = reusable_anon_vma(near, near, vma);
-       if (anon_vma)
-               return anon_vma;
-none:
+       struct anon_vma *anon_vma = NULL;
+
+       /* Try next first. */
+       if (vma->vm_next) {
+               anon_vma = reusable_anon_vma(vma->vm_next, vma, vma->vm_next);
+               if (anon_vma)
+                       return anon_vma;
+       }
+
+       /* Try prev next. */
+       if (vma->vm_prev)
+               anon_vma = reusable_anon_vma(vma->vm_prev, vma->vm_prev, vma);
+
        /*
+        * We might reach here with anon_vma == NULL if we can't find
+        * any reusable anon_vma.
         * There's no absolute need to look only at touching neighbours:
         * we could search further afield for "compatible" anon_vmas.
         * But it would probably just be a waste of time searching,
@@ -1297,7 +1293,7 @@ none:
         * We're trying to allow mprotect remerging later on,
         * not trying to minimize memory used for anon_vmas.
         */
-       return NULL;
+       return anon_vma;
 }
 
 /*