--- x/mm/mempolicy.c +++ y/mm/mempolicy.c @@ -1342,6 +1342,7 @@ static long do_mbind(unsigned long start vma_iter_init(&vmi, mm, start); prev = vma_prev(&vmi); for_each_vma_range(vmi, vma, end) { + vma_start_write(vma); err = mbind_range(&vmi, vma, &prev, start, end, new); if (err) break;