OSDN Git Service

mm: replace vma->sharead.linear with vma->shared
authorKirill A. Shutemov <kirill.shutemov@linux.intel.com>
Tue, 10 Feb 2015 22:10:02 +0000 (14:10 -0800)
committerLinus Torvalds <torvalds@linux-foundation.org>
Tue, 10 Feb 2015 22:30:31 +0000 (14:30 -0800)
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.shutemov@linux.intel.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
include/linux/mm_types.h
mm/interval_tree.c

index 3b1d20f..07c8bd3 100644 (file)
@@ -275,11 +275,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;
 
        /*
index 8da581f..f2c2492 100644 (file)
@@ -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(vma_start_pgoff(node) != vma_start_pgoff(prev), node);
 
-       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);
 }