Commit d0de32d9b71e11cc51618c2045086e9694093d01

Authored by Hugh Dickins
Committed by Linus Torvalds
1 parent 9e9bef07ce

[PATCH] mm: do_mremap current mm

Cleanup: relieve do_mremap from its surfeit of current->mms.

Signed-off-by: Hugh Dickins <hugh@veritas.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>

Showing 1 changed file with 9 additions and 9 deletions Side-by-side Diff

... ... @@ -245,6 +245,7 @@
245 245 unsigned long old_len, unsigned long new_len,
246 246 unsigned long flags, unsigned long new_addr)
247 247 {
  248 + struct mm_struct *mm = current->mm;
248 249 struct vm_area_struct *vma;
249 250 unsigned long ret = -EINVAL;
250 251 unsigned long charged = 0;
... ... @@ -285,7 +286,7 @@
285 286 if ((addr <= new_addr) && (addr+old_len) > new_addr)
286 287 goto out;
287 288  
288   - ret = do_munmap(current->mm, new_addr, new_len);
  289 + ret = do_munmap(mm, new_addr, new_len);
289 290 if (ret)
290 291 goto out;
291 292 }
... ... @@ -296,7 +297,7 @@
296 297 * do_munmap does all the needed commit accounting
297 298 */
298 299 if (old_len >= new_len) {
299   - ret = do_munmap(current->mm, addr+new_len, old_len - new_len);
  300 + ret = do_munmap(mm, addr+new_len, old_len - new_len);
300 301 if (ret && old_len != new_len)
301 302 goto out;
302 303 ret = addr;
... ... @@ -309,7 +310,7 @@
309 310 * Ok, we need to grow.. or relocate.
310 311 */
311 312 ret = -EFAULT;
312   - vma = find_vma(current->mm, addr);
  313 + vma = find_vma(mm, addr);
313 314 if (!vma || vma->vm_start > addr)
314 315 goto out;
315 316 if (is_vm_hugetlb_page(vma)) {
316 317  
... ... @@ -325,14 +326,14 @@
325 326 }
326 327 if (vma->vm_flags & VM_LOCKED) {
327 328 unsigned long locked, lock_limit;
328   - locked = current->mm->locked_vm << PAGE_SHIFT;
  329 + locked = mm->locked_vm << PAGE_SHIFT;
329 330 lock_limit = current->signal->rlim[RLIMIT_MEMLOCK].rlim_cur;
330 331 locked += new_len - old_len;
331 332 ret = -EAGAIN;
332 333 if (locked > lock_limit && !capable(CAP_IPC_LOCK))
333 334 goto out;
334 335 }
335   - if (!may_expand_vm(current->mm, (new_len - old_len) >> PAGE_SHIFT)) {
  336 + if (!may_expand_vm(mm, (new_len - old_len) >> PAGE_SHIFT)) {
336 337 ret = -ENOMEM;
337 338 goto out;
338 339 }
339 340  
... ... @@ -359,11 +360,10 @@
359 360 vma_adjust(vma, vma->vm_start,
360 361 addr + new_len, vma->vm_pgoff, NULL);
361 362  
362   - current->mm->total_vm += pages;
363   - vm_stat_account(vma->vm_mm, vma->vm_flags,
364   - vma->vm_file, pages);
  363 + mm->total_vm += pages;
  364 + vm_stat_account(mm, vma->vm_flags, vma->vm_file, pages);
365 365 if (vma->vm_flags & VM_LOCKED) {
366   - current->mm->locked_vm += pages;
  366 + mm->locked_vm += pages;
367 367 make_pages_present(addr + old_len,
368 368 addr + new_len);
369 369 }