mm/mmap: not necessary to check mapping separately
authorWei Yang <richard.weiyang@linux.alibaba.com>
Tue, 13 Oct 2020 23:54:04 +0000 (16:54 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Wed, 14 Oct 2020 01:38:31 +0000 (18:38 -0700)
*root* with type of struct rb_root_cached is an element of *mapping*
with type of struct address_space. This implies when we have a valid
*root* it must be a part of valid *mapping*.

So we can merge these two checks together to make the code more easy to
read and to save some cpu cycles.

Signed-off-by: Wei Yang <richard.weiyang@linux.alibaba.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Reviewed-by: Andrew Morton <akpm@linux-foundation.org>
Link: https://lkml.kernel.org/r/20200913133631.37781-1-richard.weiyang@linux.alibaba.com
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
mm/mmap.c

index 57de816..295197b 100644 (file)
--- a/mm/mmap.c
+++ b/mm/mmap.c
@@ -895,10 +895,9 @@ again:
                        anon_vma_interval_tree_post_update_vma(next);
                anon_vma_unlock_write(anon_vma);
        }
-       if (mapping)
-               i_mmap_unlock_write(mapping);
 
        if (root) {
+               i_mmap_unlock_write(mapping);
                uprobe_mmap(vma);
 
                if (adjust_next)