Revert "proc: pagemap: Hold mmap_sem during page walk"
authorSan Mehat <san@google.com>
Mon, 19 Apr 2010 14:45:33 +0000 (07:45 -0700)
committerSan Mehat <san@google.com>
Mon, 19 Apr 2010 14:53:56 +0000 (07:53 -0700)
This reverts commit 0bf551684025a5f0f3c9aac694cd5cf73706cb70.

Reverting for proper up-stream fix

Signed-off-by: San Mehat <san@google.com>
fs/proc/task_mmu.c

index 3f300c1a9bd096ed24683b846ca4a5ddda7f3267..2a1bef9203c6e73734e7fa359873bbb45456d0ae 100644 (file)
@@ -726,6 +726,8 @@ static ssize_t pagemap_read(struct file *file, char __user *buf,
        down_read(&current->mm->mmap_sem);
        ret = get_user_pages(current, current->mm, uaddr, pagecount,
                             1, 0, pages, NULL);
+       up_read(&current->mm->mmap_sem);
+
        if (ret < 0)
                goto out_free;
 
@@ -774,7 +776,6 @@ out_pages:
                page_cache_release(page);
        }
 out_free:
-       up_read(&current->mm->mmap_sem);
        kfree(pages);
 out_mm:
        mmput(mm);