After walking rb tree, if vma is determined, prev vma has to be determined
based on vma; and rb_prev should be considered only if no vma determined.

Signed-off-by: Hillf Danton <dhi...@gmail.com>
---

--- a/mm/mmap.c Fri Aug  3 07:38:10 2012
+++ b/mm/mmap.c Mon Aug  6 20:10:18 2012
@@ -385,9 +385,13 @@ find_vma_prepare(struct mm_struct *mm, u
                }
        }

-       *pprev = NULL;
-       if (rb_prev)
-               *pprev = rb_entry(rb_prev, struct vm_area_struct, vm_rb);
+       if (vma) {
+               *pprev = vma->vm_prev;
+       } else {
+               *pprev = NULL;
+               if (rb_prev)
+                       *pprev = rb_entry(rb_prev, struct vm_area_struct, 
vm_rb);
+       }
        *rb_link = __rb_link;
        *rb_parent = __rb_parent;
        return vma;
--
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to