if (vm_flags & VM_SPECIAL)
return NULL;
- next = find_vma(mm, prev ? prev->vm_end : 0);
- mid = next;
- if (next && next->vm_end == end) /* cases 6, 7, 8 */
- next = find_vma(mm, next->vm_end);
+ mid = find_vma(mm, prev ? prev->vm_end : 0);
+ if (mid && mid->vm_end == end) /* cases 6, 7, 8 */
+ next = find_vma(mm, mid->vm_end);
+ else
+ next = mid;
/* verify some invariant that must be enforced by the caller */
VM_WARN_ON(prev && addr <= prev->vm_start);