Re: [PATCH 3/5] proc: use down_read_killable for /proc/pid/pagemap

From: Michal Hocko
Date: Fri May 17 2019 - 08:48:56 EST


On Wed 15-05-19 11:41:19, Konstantin Khlebnikov wrote:
> Ditto.

ditto to the previous patch, including -EINTR.

>
> Signed-off-by: Konstantin Khlebnikov <khlebnikov@xxxxxxxxxxxxxx>
> ---
> fs/proc/task_mmu.c | 4 +++-
> 1 file changed, 3 insertions(+), 1 deletion(-)
>
> diff --git a/fs/proc/task_mmu.c b/fs/proc/task_mmu.c
> index 781879a91e3b..78bed6adc62d 100644
> --- a/fs/proc/task_mmu.c
> +++ b/fs/proc/task_mmu.c
> @@ -1547,7 +1547,9 @@ static ssize_t pagemap_read(struct file *file, char __user *buf,
> /* overflow ? */
> if (end < start_vaddr || end > end_vaddr)
> end = end_vaddr;
> - down_read(&mm->mmap_sem);
> + ret = down_read_killable(&mm->mmap_sem);
> + if (ret)
> + goto out_free;
> ret = walk_page_range(start_vaddr, end, &pagemap_walk);
> up_read(&mm->mmap_sem);
> start_vaddr = end;

--
Michal Hocko
SUSE Labs