From: "Kirill A. Shutemov" <kirill.shute...@linux.intel.com>

After removing vma->shared.nonlinear we have only one member of
vma->shared union, which doesn't make much sense.

This patch drops the union and move struct vma->shared.linear to
vma->shared.

Signed-off-by: Kirill A. Shutemov <kirill.shute...@linux.intel.com>
Signed-off-by: Andrew Morton <a...@linux-foundation.org>
Signed-off-by: Linus Torvalds <torva...@linux-foundation.org>

https://jira.sw.ru/browse/PSBM-52992

(cherry picked from commit ac51b934f3912582d3c897c6c4d09b32ea57b2c7)
Signed-off-by: Andrey Ryabinin <aryabi...@virtuozzo.com>
---
 include/linux/mm_types.h |  8 +++-----
 mm/interval_tree.c       | 34 +++++++++++++++++-----------------
 2 files changed, 20 insertions(+), 22 deletions(-)

diff --git a/include/linux/mm_types.h b/include/linux/mm_types.h
index 97c537a..a82a095 100644
--- a/include/linux/mm_types.h
+++ b/include/linux/mm_types.h
@@ -279,11 +279,9 @@ struct vm_area_struct {
         * For areas with an address space and backing store,
         * linkage into the address_space->i_mmap interval tree.
         */
-       union {
-               struct {
-                       struct rb_node rb;
-                       unsigned long rb_subtree_last;
-               } linear;
+       struct {
+               struct rb_node rb;
+               unsigned long rb_subtree_last;
        } shared;
 
        /*
diff --git a/mm/interval_tree.c b/mm/interval_tree.c
index 4a5822a..fb844a3 100644
--- a/mm/interval_tree.c
+++ b/mm/interval_tree.c
@@ -21,8 +21,8 @@ static inline unsigned long vma_last_pgoff(struct 
vm_area_struct *v)
        return v->vm_pgoff + ((v->vm_end - v->vm_start) >> PAGE_SHIFT) - 1;
 }
 
-INTERVAL_TREE_DEFINE(struct vm_area_struct, shared.linear.rb,
-                    unsigned long, shared.linear.rb_subtree_last,
+INTERVAL_TREE_DEFINE(struct vm_area_struct, shared.rb,
+                    unsigned long, shared.rb_subtree_last,
                     vma_start_pgoff, vma_last_pgoff,, vma_interval_tree)
 
 /* Insert node immediately after prev in the interval tree */
@@ -36,26 +36,26 @@ void vma_interval_tree_insert_after(struct vm_area_struct 
*node,
 
        VM_BUG_ON(vma_start_pgoff(node) != vma_start_pgoff(prev));
 
-       if (!prev->shared.linear.rb.rb_right) {
+       if (!prev->shared.rb.rb_right) {
                parent = prev;
-               link = &prev->shared.linear.rb.rb_right;
+               link = &prev->shared.rb.rb_right;
        } else {
-               parent = rb_entry(prev->shared.linear.rb.rb_right,
-                                 struct vm_area_struct, shared.linear.rb);
-               if (parent->shared.linear.rb_subtree_last < last)
-                       parent->shared.linear.rb_subtree_last = last;
-               while (parent->shared.linear.rb.rb_left) {
-                       parent = rb_entry(parent->shared.linear.rb.rb_left,
-                               struct vm_area_struct, shared.linear.rb);
-                       if (parent->shared.linear.rb_subtree_last < last)
-                               parent->shared.linear.rb_subtree_last = last;
+               parent = rb_entry(prev->shared.rb.rb_right,
+                                 struct vm_area_struct, shared.rb);
+               if (parent->shared.rb_subtree_last < last)
+                       parent->shared.rb_subtree_last = last;
+               while (parent->shared.rb.rb_left) {
+                       parent = rb_entry(parent->shared.rb.rb_left,
+                               struct vm_area_struct, shared.rb);
+                       if (parent->shared.rb_subtree_last < last)
+                               parent->shared.rb_subtree_last = last;
                }
-               link = &parent->shared.linear.rb.rb_left;
+               link = &parent->shared.rb.rb_left;
        }
 
-       node->shared.linear.rb_subtree_last = last;
-       rb_link_node(&node->shared.linear.rb, &parent->shared.linear.rb, link);
-       rb_insert_augmented(&node->shared.linear.rb, root,
+       node->shared.rb_subtree_last = last;
+       rb_link_node(&node->shared.rb, &parent->shared.rb, link);
+       rb_insert_augmented(&node->shared.rb, root,
                            &vma_interval_tree_augment);
 }
 
-- 
2.7.3

_______________________________________________
Devel mailing list
Devel@openvz.org
https://lists.openvz.org/mailman/listinfo/devel

Reply via email to