This looks good to me with a small comment.
> if (do_munmap(mm, old_addr, old_len, uf_unmap) < 0) {
> /* OOM: unable to split vma, just get accounts right */
> - if (vm_flags & VM_ACCOUNT)
> + if (vm_flags & VM_ACCOUNT && !(flags & MREMAP_DONTUNMAP))
> vm_acct_memory(new_len >> PAGE_SHIFT);Checking MREMAP_DONTUNMAP in the do_munmap path is unnecessary as MREMAP_DONTUNMAP will have already returned by this point.

