From: 黄涛 Date: Sat, 30 Jul 2011 14:16:44 +0000 (+0800) Subject: Revert "Revert "proc: pagemap: Hold mmap_sem during page walk"" X-Git-Tag: firefly_0821_release~10012 X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=b1d3b6d349dc81b7881469633b8cc5ba60534f8e;p=firefly-linux-kernel-4.4.55.git Revert "Revert "proc: pagemap: Hold mmap_sem during page walk"" This reverts commit 2c07d75caea45852bb9a58648a6be476ffc57a02. --- diff --git a/fs/proc/task_mmu.c b/fs/proc/task_mmu.c index 2a1bef9203c6..3f300c1a9bd0 100644 --- a/fs/proc/task_mmu.c +++ b/fs/proc/task_mmu.c @@ -726,8 +726,6 @@ static ssize_t pagemap_read(struct file *file, char __user *buf, down_read(¤t->mm->mmap_sem); ret = get_user_pages(current, current->mm, uaddr, pagecount, 1, 0, pages, NULL); - up_read(¤t->mm->mmap_sem); - if (ret < 0) goto out_free; @@ -776,6 +774,7 @@ out_pages: page_cache_release(page); } out_free: + up_read(¤t->mm->mmap_sem); kfree(pages); out_mm: mmput(mm);