Revert "proc: pagemap: Hold mmap_sem during page walk"
author黄涛 <huangtao@rock-chips.com>
Sat, 30 Jul 2011 14:16:53 +0000 (22:16 +0800)
committer黄涛 <huangtao@rock-chips.com>
Sat, 30 Jul 2011 14:16:53 +0000 (22:16 +0800)
This reverts commit 0bf551684025a5f0f3c9aac694cd5cf73706cb70.

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);